Это плохая практика, чтобы заставить сеттер возвращать «это»?
Это хорошая или плохая идея сделать возвращение сеттеров в Java? "этот"?
public Employee setName(String name){
this.name = name;
return this;
}
Этот шаблон может быть полезен, потому что тогда вы можете связывать сеттеры следующим образом:
list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!"));
вместо этого:
Employee e = new Employee();
e.setName("Jack Sparrow");
...and so on...
list.add(e);
... но это как бы идет вразрез со стандартным соглашением. Я полагаю, что это может быть полезно только потому, что это может заставить этого сеттера сделать что-то еще полезное Я'Мы видели, что этот шаблон использовал некоторые места (например, JMock, JPA), но он кажется необычным и обычно используется только для очень четко определенных API, где этот шаблон используется везде.
Обновить:
Что я'Описанное выше, очевидно, справедливо, но я действительно ищу некоторые мысли о том, является ли это в целом приемлемым, и есть ли какие-либо подводные камни или связанные с ними передовые практики. Я знаю о шаблоне Builder, но он немного сложнее, чем то, что я описываю - как описывает его Джош Блох, существует связанный статический класс Builder для создания объектов.