Плохая ли практика заставлять сеттер возвращать «это»?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Плохая ли практика заставлять сеттер возвращать «это»?

Сообщение Anonymous »

Хорошая или плохая идея заставлять сеттеры в 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 для создания объектов.

Подробнее здесь: https://stackoverflow.com/questions/134 ... eturn-this
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»