Bean에 체인을 구현하면 생성자, 메가 생성자, 팩토리를 오버로드 할 필요가없고 가독성이 향상됩니다. 객체를 불변으로 만들고 싶지 않다면 어떤 단점도 생각할 수 없습니다 .이 경우 어쨌든 setter가 없습니다. 그렇다면 이것이 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')