私が働いている場所では、このようなことをするクラスがたくさんあります。
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"
}
}
クラスが独自のゲッターとセッターを呼び出すと、コードが読みにくくなります。私にとっては、このメソッド呼び出しでは複雑なロジックが発生していることをほぼ暗示していますが、このケースではほとんど発生していません。なじみのないコードをデバッグしているとき、バグがそのメソッドの副作用ではないと言うのは誰ですか?言い換えれば、コードを理解するために多くのサイドトリップをするようになります。
最初の方法には利点がありますか?最初の方法は実際には良いですか?