Логотип ConstructiCat
CodeBust.
Навигация по разделу ▾

Параллельные иерархии наследования.

Всякий раз при создании подкласса какого-то класса приходится создавать ещё один подкласс для другого класса.

##Признаки и симптомы

Всякий раз при создании подкласса какого-то класса приходится создавать ещё один подкласс для другого класса.

abstract class Engine {}
class CarEngine extends Engine {}
class TruckEngine extends Engine {}

abstract class EngineView {}
class CarEngineView extends EngineView {}
class TruckEngineView extends EngineView {}
// добавив BusEngine, придётся добавить и BusEngineView

##Причины проблемы

Пока иерархия была небольшая, всё было хорошо. Но с появлением новых классов вносить изменения становилось всё сложнее и сложнее.

##Лечение

##Результат

  • Уменьшает дублирования кода.

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