Tener el encadenamiento implementado en beans es muy útil: no es necesario sobrecargar los constructores, los mega constructores, las fábricas, y le proporciona una mayor legibilidad. No puedo pensar en ninguna desventaja, a menos que quieras que tu objeto sea inmutable , en cuyo caso no tendría ningún configurador de todos modos. Entonces, ¿hay alguna razón por la que esto no sea una convención 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");