Le chaînage sur les haricots est très pratique: vous n'avez pas besoin de surcharger les constructeurs, les méga constructeurs, les usines et vous donne une lisibilité accrue. Je ne peux penser à aucun inconvénient, à moins que vous ne souhaitiez que votre objet soit immuable , auquel cas il n'aurait aucun décideur de toute façon. Donc, y a-t-il une raison pour laquelle ce n'est pas une convention POO?
public class DTO {
private String foo;
private String bar;
public String getFoo() {
return foo;
}
public String getBar() {
return bar;
}
public DTO setFoo(String foo) {
this.foo = foo;
return this;
}
public DTO setBar(String bar) {
this.bar = bar;
return this;
}
}
//...//
DTO dto = new DTO().setFoo("foo").setBar("bar");
myCustomDTO = DTOBuilder.defaultDTO().withFoo("foo").withBar("bar").Build();
Je le ferais pour ne pas contredire l’idée générale selon laquelle les setters sont vides.
new Foo().setBar('bar').setBaz('baz')
très "fluide". Je veux dire, bien sûr, cela pourrait être mis en œuvre exactement de la même manière, mais je m'attendrais beaucoup à lire quelque chose qui ressemble davantage àFoo().barsThe('bar').withThe('baz').andQuuxes('the quux')