Est-ce une bonne ou une mauvaise idée de faire revenir les setters en java "this"?
public Employee setName(String name){
this.name = name;
return this;
}
Ce modèle peut être utile car vous pouvez alors enchaîner des setters comme ceci:
list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!"));
au lieu de cela:
Employee e = new Employee();
e.setName("Jack Sparrow");
...and so on...
list.add(e);
... mais cela va en quelque sorte à l'encontre de la convention standard. Je suppose que cela pourrait valoir la peine simplement parce que cela peut faire que le setter fasse autre chose d'utile. J'ai vu ce modèle utilisé à certains endroits (par exemple JMock, JPA), mais il semble rare, et n'est généralement utilisé que pour des API très bien définies où ce modèle est utilisé partout.
Mettre à jour:
Ce que j'ai décrit est évidemment valable, mais ce que je recherche vraiment, ce sont des réflexions sur la question de savoir si cela est généralement acceptable et s'il y a des écueils ou des meilleures pratiques connexes. Je connais le modèle Builder mais il est un peu plus impliqué que ce que je décris - comme Josh Bloch le décrit, il existe une classe Builder statique associée pour la création d'objets.
this
. Parfois, je modifie même la fonction de sorte qu'au lieu de renvoyer une valeur, elle opère sur un membre de l'objet, juste pour que je puisse le faire. C'est merveilleux. :)