Параллельные иерархии наследования
Также известен как: Parallel Inheritance Hierarchies
Симптомы и признаки
Всякий раз при создании подкласса какого-то класса приходится создавать ещё один подкласс для другого класса.
Причины появления
Пока иерархия была небольшая, всё было хорошо. Но с появлением новых классов вносить изменения становилось всё сложнее и сложнее.
Лечение
- Вы можете попытаться устранить дублирования паралельных классов в два этапа. Во-первых, нужно заставить экземпляры одной иерархии ссылаться на экземпляры другой иерархии. Затем следует убрать иерархию в ссылающемся классе с помощью перемещения метода и перемещения поля.
Выигрыш
-
Уменьшает дублирования кода.
-
Может улучшить организацию кода.
Не стоит трогать, если...
- Иногда наличие паралельной иерархии — это необходимое зло, без которого устройство программы было бы еще хуже. Если вы обнаружите, что ваши попытки устранить дублирование приводят к еще большему ухудшению организации кода, то... остановите рефакторинг, откатите все внесенные изменения, выпейте чаю и начните привыкать к этому коду.