Die Implementierung der Verkettung in Beans ist sehr praktisch: Konstruktoren, Megakonstruktoren und Fabriken müssen nicht überladen werden, und die Lesbarkeit wird erhöht. Ich kann mir keine Nachteile vorstellen, es sei denn, Sie möchten, dass Ihr Objekt unveränderlich ist. In diesem Fall würde es sowieso keine Setter haben. Gibt es einen Grund, warum dies keine OOP-Konvention ist?
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();
Ich würde das tun, um nicht der allgemeinen Vorstellung zu widersprechen, dass Setter leere Stellen sind.
new Foo().setBar('bar').setBaz('baz')
sich das sehr "flüssig" anfühlt. Ich meine, sicher, es könnte genauso implementiert werden, aber ich würde sehr erwarten, dass ich etwas Ähnliches wieFoo().barsThe('bar').withThe('baz').andQuuxes('the quux')