Есть ли более простой термин, обозначающий «неразрушающий установщик»?

#java #oop #terminology #getter-setter

#java #ооп #терминология #получатель-установщик

Вопрос:

В таком коде setValue метод обычно вызывается как «установщик» в целом, но как withValue метод (т. Е. Возвращает новый объект, поля (ы) которого изменены / изменены), вызывается вообще?

 class MyClass {
   private int value;
   public MyClass(int value) {this.value=value;}
   // a getter
   public int getValue() {return value;}
   // a (destructive) setter
   public void setValue(int value) {this.value=value;}
   // a (non-destructive) setter <- Is there a simpler term than this? 
   public MyClass withValue(int value) {return new MyClass(value);}
}  
  

Комментарии:

1. Ваш пример неразрушающего установщика ничего не устанавливает.

2. Я иногда называю их «withers» (как в getter, setter, «hazzer» [как в буфере протокола «has»], «izzer» [как в логическом методе is]). Однако это не универсальные термины.

3. Кроме того, «холка» является частью лошади. Остановите меня, если я не помогаю.

4. У Ломбока есть эта функция.

Ответ №1:

Обычный префикс для этих методов with :

 MyClass alternateVersion = myClass.withValue(5);
  

Комментарии:

1. Спасибо. Я изменил имя метода valueChanged -> withValue .