Est-ce une bonne ou une mauvaise idée de faire des setters de java retour "ce"?
public Employee setName(String name){
this.name = name;
return this;
}
Ce modèle peut être utile parce que vous pouvez enchaîner les 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 ça va à l'encontre de la norme de la convention. Je suppose qu'il pourrait être utile, juste parce que cela peut faire que le setter de faire autre chose d'utile. J'ai vu ce motif est utilisé certains endroits (par exemple JMock, JPA), mais il semble rare, et seulement généralement utilisé pour définir les Api où ce modèle est utilisé partout.
Mise à jour:
Ce que j'ai décrit est évidemment valable, mais ce que je suis à la recherche de quelques réflexions sur que ce soit généralement acceptable, et s'il y a des pièges ou les meilleures pratiques. Je sais que sur le Générateur de modèle mais il est un peu plus impliqué alors ce que je viens de décrire - comme Josh Bloch décrit il y est associé à un Constructeur statique de la classe pour la création d'objet.