Fasulyelerde zincirleme yapılması çok kullanışlıdır: aşırı yüklenicilere, mega yapıcılara, fabrikalara gerek yoktur ve okunabilirliği arttırır. Nesnenizin değişmez olmasını istemediğiniz sürece herhangi bir olumsuz tarafı düşünemiyorum, bu durumda zaten herhangi bir ayarlayıcı bulunmayacak. Öyleyse bunun bir OOP sözleşmesi olmaması için bir neden var mı?
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();
Bunu yapardım, böylece belirleyicilerin geçersiz olduğu genel fikrine çelişmemek için.
new Foo().setBar('bar').setBaz('baz')
çok "akıcı" olduğunu söylemez . Yani, tam olarak aynı şekilde uygulanabileceğinden eminim, ama daha çok benzer bir şeyler okumayı beklerdimFoo().barsThe('bar').withThe('baz').andQuuxes('the quux')