Donde trabajo veo muchas clases que hacen cosas como esta:
public class ClassThatCallsItsOwnGettersAndSetters {
private String field;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public void methodWithLogic() {
setField("value");
//do stuff
String localField = getField();
//do stuff with "localField"
}
}
Si escribiera esto desde cero, habría escrito lo methodWithLogic()
siguiente en su lugar:
public class ClassThatUsesItsOwnFields {
private String field;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public void methodWithLogic() {
field = "value";
//do stuff
//do stuff with "field"
}
}
Siento que cuando la clase llama a sus propios captadores y establecedores, hace que el código sea más difícil de leer. Para mí, casi implica que está ocurriendo una lógica compleja en esa llamada al método, aunque en nuestro caso casi nunca ocurre. Cuando estoy depurando un código desconocido, ¿quién puede decir que el error no es un efecto secundario en ese método? En otras palabras, me hace hacer muchos viajes secundarios en el viaje de entender el código.
¿Hay beneficios para el primer método? ¿Es el primer método realmente mejor?