← Lumbre

Programación Orientada a Objetos · 2.º Composición sobre herencia

← Volver a todos los contenidos
Portada de Composición sobre herencia

Composición sobre herencia

✦ La herencia ata a un hijo con su padre para siempre; la composición pega piezas que se pueden cambiar · Programación Orientada a Objetos · Programación · y te lleva 3 minutos

Roadwise Consulting

Firmado y verificado · Fernando Castro

Objetivo: Preferir composición sobre herencia para reutilizar comportamiento y acoplar menos los componentes de un sistema.

3 min 18–30 años
Autoevaluación
Más
Composición sobre herencia

Herramientas de la lección

◉ Entrar a La Matrix Sorpréndeme

Sobre este contenido

Ir a

Volver a Objetos Cursos Explorar Mi cuenta Salir del modo estudio

Composición sobre herencia

Ilustracion de programacion orientada a objetos: jerarquia de clases con herencia y encapsulamiento.
Principios de la programacion orientada a objetos: clases, herencia y polimorfismo.

Mapa conceptual

  • Programacion OO
    • Clases
      • Objetos
      • Atributos
      • Metodos self
    • Encapsulamiento
      • Public
      • Private
      • Properties
    • Herencia
      • Polimorfismo
      • Abstractas
      • Interfaces
    • Composicion
      • Sobre herencia
      • Delegacion
      • Acoplamiento
    • Proyecto
      • Paquetes
      • Modulos
      • Convenciones

Herencia encadena

Con herencia, la subclase queda rígidamente unida al padre: comparte su implementación, y si el padre cambia, el hijo se entera. Es útil para verdaderos «es-un», pero frágil cuando se usa solo para reutilizar: un cambio lejos puede romper todo el árbol.

Composición une

La composición construye un objeto teneniendo otros como partes y delegando en ellos. Un Coche tiene un Motor y le pide que arranque. El motor se puede sustituir, apagar o probar a parte sin tocar al coche. La relación es flexible y visible.

La regla de oro

El principio de diseño «prefiere composición sobre herencia» dice: cuando dudes, no heredes para reutilizar; crea un objeto interno y delega en él. Reserva la herencia para cuando la relación es-un sea genuina y estable.

Cuando solo buscas reutilizar, la composición casi siempre gana.
CriterioElige herenciaElige composición
Relación reales-un genuino y establetiene-un / usa-un
Flexibilidadjerarquía fijapiezas intercambiables
Acoplamientohijo depende del padrebajo, por interfaz
Reutilizarcomportamiento base comúncompartir funcionalidad
Polimorfismosustituir tiposinyectar componentes

Un Coche necesita reutilizar la funcionalidad de arranque de un Motor. ¿Qué relación conviene?

Delegación

El objeto contenedor expone su propia interfaz pero reenvía parte del trabajo a sus componentes. Así se pueden intercambiar piezas en tiempo de ejecución (otro motor, otro formato de salida) sin recompilar jerarquías.

Testeabilidad

Con composición puedes meter un motor falso (un stub) en el coche para probarlo sin encender el motor real. El bajo acoplamiento hace que las unidades se puedan aislar y verificar por separado.

El problema del yo-yo

Las jerarquías profundas obligan a saltar entre padre, abuelo y subclase para entender qué pasa: es el «problema del yo-yo». La composición aplana: cada objeto dice claramente qué partes tiene y a quién delega.

La composición suele producir un acoplamiento más bajo entre componentes que la herencia profunda.

Errores frecuentes

  • Heredar solo para heredar métodos: acopla tu clase a los detalles internos del padre.
  • Crear jerarquías de una sola implementación para tres líneas reutilizadas.
  • Confundir composición con agregación sin gestionar el ciclo de vida de las piezas.

Trabajo en equipo de objetos

Sistemas grandes se ven mejor como constelaciones de objetos que se pasan mensajes y colaboran, no como árboles genealógicos. La composición modela esa colaboración con claridad; la herencia, el parentesco.

Asigna cada relación a la técnica apropiada:

Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.

Video complementario
Recurso audiovisual para reforzar los conceptos.

Tienes un sistema que heredó de «Base de datos» solo para reutilizar un método de conexión. Refactóralo mentalmente a composición: ¿qué objeto inyectarías y qué beneficio obtendrías?

Tu texto se guarda sólo en este dispositivo.

Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.

Autoevaluación

Comprueba lo que aprendiste

2 preguntas · ves cada respuesta al momento · el resultado queda guardado en tu historial

Iniciar autoevaluación
Más sobre esta lección

¿Necesitas ayuda?

Vamos a atacar justo la parte que no te cuadra

Explicaciones cortas, dibujos, ejemplos y práctica. Nada cuenta como nota.

Rutas vivas

¿Y ahora qué? Elige el camino por lo que necesitas

No es un listado al azar: cada camino responde una pregunta distinta y te dice por qué.

Otra forma de comprenderlo

✦ Explorar el universo completo
Explora temas relacionados

Conceptos

Comentarios

Inicia sesión para comentar.

Todavía no hay comentarios. Sé la primera persona en opinar.