การผูกมัดแบบติดตั้งบนถั่วนั้นมีประโยชน์มาก: ไม่จำเป็นต้องใช้ตัวสร้างมากเกินไปตัวสร้างขนาดใหญ่โรงงานและช่วยให้คุณอ่านง่ายขึ้น ฉันไม่สามารถคิดถึงข้อเสียใด ๆ เว้นแต่ว่าคุณต้องการให้วัตถุของคุณไม่เปลี่ยนรูปในกรณีนี้มันจะไม่มีตัวตั้งค่าใด ๆ อยู่ดี มีเหตุผลทำไมนี่ไม่ใช่การประชุม OOP?
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();
ฉันทำอย่างนั้นเพื่อที่จะไม่ขัดแย้งกับแนวคิดทั่วไปที่ผู้ตั้งค่าเป็นช่องว่าง
new Foo().setBar('bar').setBaz('baz')
รู้สึก "คล่องแคล่ว" มาก ฉันหมายถึงแน่ใจว่ามันสามารถใช้งานได้ในลักษณะเดียวกัน แต่ฉันคาดหวังอย่างมากว่าจะอ่านอะไรเพิ่มเติมFoo().barsThe('bar').withThe('baz').andQuuxes('the quux')