Де я працюю, я бачу багато класів, які роблять такі речі:
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"
}
}
Якби я написав це з нуля, я б написав methodWithLogic()
так:
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"
}
}
Я відчуваю, що коли клас називає власні геттери та сетери, це робить код важче читати. Для мене це майже означає, що в цьому методі виклику відбувається складна логіка, хоча в нашому випадку це майже ніколи не буває. Коли я налагоджую незнайомий код, хто скаже, що помилка не є побічним ефектом у цьому методі? Іншими словами, це змушує мене багато подорожувати в дорозі розуміння коду.
Чи є переваги першому методу? Чи справді перший метод краще?