Где я работаю, я вижу много классов, которые делают такие вещи:
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"
}
}
Я чувствую, что когда класс вызывает свои собственные методы получения и установки, это затрудняет чтение кода. Для меня это почти означает, что сложная логика происходит при вызове этого метода, хотя в нашем случае это почти никогда не происходит. Когда я отлаживаю какой-то незнакомый код, кто скажет, что ошибка не является побочным эффектом в этом методе? Другими словами, это заставляет меня совершать множество дополнительных поездок по пути понимания кода.
Есть ли преимущества у первого метода? Первый метод на самом деле лучше?