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
-
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.
-
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.
-
-
Elimina el setter.