Два класса запутались в любви.
Проблемы
- Связь
- Назначение плохих обязанностей
- Плохая сплоченность
- Интерфейсы классов слишком общедоступны
- Ремонтопригодность
- Расширяемость
Решения
- Рефакторинг
- Объединить
- Замените иерархию делегированием.
Образец кода
Неправильный
Правильно
Обнаружение
Некоторые линтеры определяют отношения классов и зависимости протоколов. Анализируя граф сотрудничества, мы можем вывести правила и подсказки.
Теги
- Связь
Вывод
Если два класса слишком связаны и мало общаются с другими, нам может потребоваться их разделение, объединение или рефакторинг. Классы должны знать друг о друге как можно меньше.
связи
Больше информации
Https://wiki.c2.com/?InapplicitIntimacy
Независимо от того, насколько медленно вы пишете чистый код, вы всегда будете медленнее, если создадите беспорядок.
Роберт Мартин
Эта статья является частью серии CodeSmell.