Wo ich arbeite, sehe ich viele Klassen, die solche Dinge tun:
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"
}
}
Wenn ich das von Grund auf neu geschrieben hätte, hätte ich methodWithLogic()
stattdessen folgendes geschrieben :
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"
}
}
Ich glaube, wenn die Klasse ihre eigenen Getter und Setter aufruft, ist der Code schwieriger zu lesen. Für mich bedeutet das fast , dass in diesem Methodenaufruf komplexe Logik vor sich geht, obwohl dies in unserem Fall so gut wie nie der Fall ist. Wenn ich unbekannten Code debugge, wer sagt dann, dass der Fehler bei dieser Methode keine Nebenwirkung hat? Mit anderen Worten, ich muss auf dem Weg zum Verständnis des Codes viele Abstecher machen.
Gibt es Vorteile für die erste Methode? Ist die erste Methode eigentlich besser?