1.6 KiB
1.6 KiB
#рефакторинг #методы_рефакторинга
Проблема
Значение поля должно быть установлено только в момент создания и больше никогда не меняться
class Person {
get name() {...}
set name(aString) {...}
}
Решение
Удалите методы, устанавливающие значение этого поля
class Person {
get name() {...}
}
Причины рефакторинга
Вы хотите сделать значение поля неизменяемым.
Порядок рефакторинга
- Значение поля должно меняться только в конструкторе. Если конструктор не содержит параметра для установки значения, нужно его добавить
- Найдите все вызовы сеттера
- Если вызов сеттера стоит сразу после вызова конструктора текущего класса, переместите его аргумент в вызов конструктора и удалите сеттер.
- Вызовы сеттера в конструкторе замените на прямой доступ к полю.
- Удалите сеттер
