Logotipo de ConstructiCat
CodeBust.
Explorar la sección ▾

Jerarquías de herencia paralelas.

Cada vez que creas una subclase para una clase, te ves obligado a crear una subclase para otra clase.

##Signos y síntomas

Cada vez que creas una subclase para una clase, te ves obligado a crear una subclase para otra clase.

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

abstract class EngineView {}
class CarEngineView extends EngineView {}
class TruckEngineView extends EngineView {}
// añadir BusEngine obliga a añadir también BusEngineView

##Causas del problema

Todo iba bien mientras la jerarquía se mantenía pequeña. Pero, a medida que se añaden nuevas clases, hacer cambios se ha vuelto cada vez más difícil.

##Tratamiento

Refactorizar con

##Beneficios

  • Reduce la duplicación de código.

  • Puede mejorar la organización del código.