Паралельні ієрархії наслідування
Також відомий як: Parallel Inheritance Hierarchies
Симптоми і ознаки
Всякий раз при створенні підкласу якогось класу доводиться створювати ще один підклас для іншого класу.
Причини появи
Доки ієрархія була невелика, все було добре. Але з додаванням нових класів вносити зміни ставало все складніше і складніше.
Лікування
- Ви можете спробувати усунути дублювання паралельних класів в два етапи. По-перше, потрібно змусити екземпляри однієї ієрархії посилатися на екземпляри іншої ієрархії. Потім слід прибрати ієрархію в класі, що посилається, за допомогою переміщення методу і переміщення поля.
Виграш
-
Зникає дублювання коду.
-
Може поліпшити організацію коду.
Не варто чіпати, якщо...
- Іноді наявність паралельної ієрархії — це необхідне зло, без якого структура коду програми була б ще гірше. Якщо ви виявите, що ваші спроби усунути дублювання призводять до ще більшого погіршення організації коду, то... зупиніть рефакторинг, відкатіть всі внесені зміни, випийте чаю і почніть звикати до цього коду.