Если вы рассматриваете свои объекты как держатели данных, вы нарушите их инкапсуляцию, но этого не следует делать, как в реальной жизни, всегда следует запрашивать согласие.

Проблемы

  • Нарушение сокрытия информации
  • Нарушение инкапсуляции
  • Связь

Решения

  1. В сочетании с интерфейсами и поведением, никогда с данными.

Образец кода

Неправильный

Правильно

Обнаружение

Вы можете настроить линтеры так, чтобы они предупреждали вас об использовании общедоступных атрибутов, сеттеров и получателей и препятствовали их использованию.

Теги

  • Связь

Вывод

Если ваши классы загрязнены сеттерами, геттерами и общедоступными методами, у вас наверняка будут способы присоединиться к их случайной реализации.

Также известен как

  • Несоответствующая близость

связи





Больше информации





Структура данных - это просто глупый язык программирования.

Билл Госпер



Эта статья является частью серии CodeSmell.



Как найти вонючие части вашего кода
Код плохо пахнет. Давайте посмотрим, как изменить ароматы. medium.com