Глянь мій новий курс по Git! Привіт! Глянь мій новий курс по Git! Привіт! Глянь мій новий курс по Git на GitByBit.com! Привіт! Хочеш класно освіжити Git? Глянь мій новий курс на GitByBit.com!

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

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

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

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

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

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

Лікування

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

Виграш

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

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

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

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