Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Удаление метода установки значения (Remove Setting Method).md
2026-02-23 19:52:05 +03:00

1.6 KiB
Raw Blame History

#рефакторинг #методы_рефакторинга

!Pasted image 20250213084339.png

Проблема

Значение поля должно быть установлено только в момент создания и больше никогда не меняться

class Person {
  get name() {...}
  set name(aString) {...}
}

Решение

Удалите методы, устанавливающие значение этого поля

class Person {
  get name() {...}
}

Причины рефакторинга

Вы хотите сделать значение поля неизменяемым.

Порядок рефакторинга

  1. Значение поля должно меняться только в конструкторе. Если конструктор не содержит параметра для установки значения, нужно его добавить
  2. Найдите все вызовы сеттера
    1. Если вызов сеттера стоит сразу после вызова конструктора текущего класса, переместите его аргумент в вызов конструктора и удалите сеттер.
    2. Вызовы сеттера в конструкторе замените на прямой доступ к полю.
  3. Удалите сеттер

Ссылки