Có chuỗi thực hiện trên đậu rất tiện dụng: không cần quá tải các nhà xây dựng, nhà xây dựng lớn, nhà máy và giúp bạn tăng khả năng đọc. Tôi không thể nghĩ ra bất kỳ nhược điểm nào, trừ khi bạn muốn đối tượng của mình là bất biến , trong trường hợp đó nó sẽ không có bất kỳ setters nào. Vì vậy, có lý do tại sao đây không phải là một quy ước 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();
Tôi sẽ làm điều đó, để không xung đột với ý tưởng chung rằng setters là khoảng trống.
new Foo().setBar('bar').setBaz('baz')
cảm thấy rất "trôi chảy". Ý tôi là, chắc chắn rằng nó có thể được thực hiện chính xác theo cùng một cách, nhưng tôi rất mong đợi được đọc một cái gì đó giống nhưFoo().barsThe('bar').withThe('baz').andQuuxes('the quux')