Là où je travaille, je vois beaucoup de classes qui font des choses comme celle-ci:
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"
}
}
Si j'avais écrit ça à partir de rien, j'aurais methodWithLogic()
plutôt écrit ceci:
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"
}
}
Je pense que lorsque la classe appelle ses propres accesseurs et régleurs, cela rend le code plus difficile à lire. Pour moi, cela implique presque que de la logique complexe se produit dans cet appel de méthode, même si dans notre cas ce n’est presque jamais. Lorsque je débogue des codes inconnus, qui peut dire que le bogue n’est pas un effet secondaire de cette méthode? En d'autres termes, cela me fait faire beaucoup de détournements pour comprendre le code.
Y a-t-il des avantages à la première méthode? La première méthode est-elle réellement meilleure?