Logotipo de ConstructiCat
CodeBust.
Explorar la sección ▾

Eliminar método de asignación.

Problema

El valor de un campo debería establecerse solo cuando se crea, y no cambiar en ningún momento posterior.

Solución

Por lo tanto, elimina los métodos que establecen el valor del campo.

##Ejemplo

Antes
class Account {
  private String id;

  Account(String id) {
    setId(id);
  }
  void setId(String arg) {
    id = arg;
  }
}
Después
class Account {
  private final String id;

  Account(String id) {
    this.id = id;
  }
}

##Por qué refactorizar

Quieres evitar cualquier cambio en el valor de un campo.

##Cómo refactorizar

  1. El valor de un campo solo debería poder modificarse en el constructor. Si el constructor no contiene un parámetro para establecer el valor, añade uno.

  2. Encuentra todas las llamadas al método de asignación (setter).

    • Si una llamada al setter se encuentra justo después de una llamada al constructor de la clase actual, mueve su argumento a la llamada del constructor y elimina el setter.

    • Reemplaza las llamadas al setter dentro del constructor por un acceso directo al campo.

  3. Elimina el setter.