Ищете конкретную реализацию метода? Двигайтесь вперед и назад, вверх и вниз.
Проблемы
- Глубокие иерархии
- Подклассификация для повторного использования кода
- Читаемость
- Низкая сплоченность
- Высокое сцепление
Решения
- Предпочитайте композицию наследованию.
- Реорганизуйте глубокие иерархии.
Образец кода
Неправильный
Правильно
Обнаружение
Любой линтер может проверить наличие подозреваемых по максимальному порогу глубины.
Теги
- Иерархия
Вывод
Многие начинающие программисты повторно используют код через иерархии. Это приводит к появлению иерархий с высоким и низким уровнем связности.
Джонсон и Фут в своей статье утверждали, что это действительно хороший рецепт дизайна еще в 1988 году. Мы многому научились от этого.
Мы должны провести рефакторинг и сгладить эти классы.
связи
Больше информации
Https://wiki.c2.com/?DeepClassHierarchies
Иерархия должна быть глубокой, Джонсон и Фут
Ошибка возникает из-за обработки объектных переменных (переменных экземпляра), как если бы они были атрибутами данных, а затем создания вашей иерархии на основе общих атрибутов. Всегда создавайте иерархии на основе общего поведения, стороны.
Дэвид Уэст
Эта статья является частью серии CodeSmell.