Если вы рассматриваете свои объекты как держатели данных, вы нарушите их инкапсуляцию, но этого не следует делать, как в реальной жизни, всегда следует запрашивать согласие.
Проблемы
- Нарушение сокрытия информации
- Нарушение инкапсуляции
- Связь
Решения
- В сочетании с интерфейсами и поведением, никогда с данными.
Образец кода
Неправильный
Правильно
Обнаружение
Вы можете настроить линтеры так, чтобы они предупреждали вас об использовании общедоступных атрибутов, сеттеров и получателей и препятствовали их использованию.
Теги
- Связь
Вывод
Если ваши классы загрязнены сеттерами, геттерами и общедоступными методами, у вас наверняка будут способы присоединиться к их случайной реализации.
Также известен как
- Несоответствующая близость
связи
Больше информации
Структура данных - это просто глупый язык программирования.
Билл Госпер
Эта статья является частью серии CodeSmell.