Spring SALE

Паралельні ієрархії наслідування

Також відомий як: Parallel Inheritance Hierarchies

Симптоми і ознаки

Всякий раз при створенні підкласу якогось класу доводиться створювати ще один підклас для іншого класу.

Причини появи

Доки ієрархія була невелика, все було добре. Але з додаванням нових класів вносити зміни ставало все складніше і складніше.

Лікування

  • Ви можете спробувати усунути дублювання паралельних класів в два етапи. По-перше, потрібно змусити екземпляри однієї ієрархії посилатися на екземпляри іншої ієрархії. Потім слід прибрати ієрархію в класі, що посилається, за допомогою переміщення методу і переміщення поля.

Виграш

  • Зникає дублювання коду.

  • Може поліпшити організацію коду.

Не варто чіпати, якщо...

  • Іноді наявність паралельної ієрархії — це необхідне зло, без якого структура коду програми була б ще гірше. Якщо ви виявите, що ваші спроби усунути дублювання призводять до ще більшого погіршення організації коду, то... зупиніть рефакторинг, відкатіть всі внесені зміни, випийте чаю і почніть звикати до цього коду.