Сеттеры нарушают неизменность и добавляют случайную связь
TL;DR: сделайте свои атрибуты приватными, чтобы способствовать изменчивости
Устраненные проблемы
- Изменчивость
- setXXX() нарушает правильную политику именования, так как не существует на MAPPER.
- Случайное сцепление
Связанные запахи кода
Шаги
1. Найдите использование сеттеров
2. Если вы устанавливаете основные свойства, переместите их в конструктор и удалите метод.
3. Если вам нужно изменить случайное свойство, это не сеттер. Удалите префикс setXXX
Образец кода
До
После
Тип
[X] Полуавтоматический
Мы должны обнаруживать сеттеры (если только они не используют метапрограммирование) с помощью наших IDE.
Мы также можем удалить их и посмотреть, какие тесты не пройдут, если у нас хорошее покрытие.
Теги
- Изменчивость
Связанные рефакторинги
- Удалить геттеры
- Передайте основные свойства в конструкторе
- Инициализировать основные свойства в конструкторе
Эта статья является частью серии статей о рефакторинге.