Saltar al contenido
uencoder

Composition over Inheritance

La composición sobre la herencia aconseja construir comportamiento conteniendo otros objetos en lugar de heredar, evitando clases base frágiles y cadenas de herencia profundas.

Propósito

Diseñar relaciones de objetos flexibles y mantenibles y evitar el acoplamiento y fragilidad de la herencia.

Mecanismo

Se prefiere una relación has-a (composición) a una relación is-a (herencia). La composición permite intercambiar componentes en tiempo de ejecución, mientras que la herencia queda fijada en tiempo de compilación. Los patrones strategy y decorator usan composición. Las interfaces más composición logran polimorfismo sin herencia.

Casos de uso

  • Diseño orientado a objetos
  • Patrones de diseño
  • Arquitectura de código

Términos relacionados

References