Удаление сеттера
Также известен как: Remove Setting Method
Проблема
Значение поля должно быть установлено только в момент создания и больше никогда не меняться.
Решение
Удалите методы, устанавливающие значение этого поля.
До
![Remove Setting Method - Before](/images/refactoring/diagrams/Remove Setting Method - Before.png?id=6f5c0d77289a8f59a2bb89032d5bc55f)
После
![Remove Setting Method - After](/images/refactoring/diagrams/Remove Setting Method - After.png?id=5e75fe3df982c4da469ddceb96530058)
Причины рефакторинга
Вы хотите сделать значение поля неизменяемым.
Порядок рефакторинга
-
Значение поля должно меняться только в конструкторе. Если конструктор не содержит параметра для установки значения, нужно его добавить.
-
Найдите все вызовы сеттера.
-
Если вызов сеттера стоит сразу после вызова конструктора текущего класса, переместите его аргумент в вызов конструктора и удалите сеттер.
-
Вызовы сеттера в конструкторе замените на прямой доступ к полю.
-
-
Удалите сеттер.