내가 일하는 곳에서 다음과 같은 일을하는 많은 수업을 봅니다.
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"
}
}
클래스가 자체 getter 및 setter를 호출하면 코드를 읽기가 더 어려워집니다. 나에게 그것은 거의 우리의 경우에 결코 그렇지 않더라도 그 메소드 호출에서 복잡한 논리가 일어나고 있음 을 거의 암시 합니다. 익숙하지 않은 코드를 디버깅 할 때 버그가 해당 방법에서 부작용이 아니라고 말하는 사람은 누구입니까? 다시 말해, 코드를 이해하는 여정에서 많은 사이드 트립을 수행하게됩니다.
첫 번째 방법에는 이점이 있습니까? 첫 번째 방법이 실제로 더 낫습니까?