Сеттеры нарушают неизменность и добавляют случайную связь

TL;DR: сделайте свои атрибуты приватными, чтобы способствовать изменчивости

Устраненные проблемы

  • Изменчивость
  • setXXX() нарушает правильную политику именования, так как не существует на MAPPER.
  • Случайное сцепление

Связанные запахи кода





Шаги

1. Найдите использование сеттеров

2. Если вы устанавливаете основные свойства, переместите их в конструктор и удалите метод.

3. Если вам нужно изменить случайное свойство, это не сеттер. Удалите префикс setXXX

Образец кода

До

После

Тип

[X] Полуавтоматический

Мы должны обнаруживать сеттеры (если только они не используют метапрограммирование) с помощью наших IDE.

Мы также можем удалить их и посмотреть, какие тесты не пройдут, если у нас хорошее покрытие.

Теги

  • Изменчивость

Связанные рефакторинги

  • Удалить геттеры
  • Передайте основные свойства в конструкторе
  • Инициализировать основные свойства в конструкторе

Эта статья является частью серии статей о рефакторинге.