Lección 15: Composición frente a herencia
Un auto tiene un motor, pero no es un tipo de motor. Para las relaciones "tiene un" existe una segunda herramienta, sorprendentemente simple: guardar un objeto como atributo de otro objeto. Eso es composición, y elegir entre ella y la herencia es una de las decisiones clave del diseño.
La herencia es el ADN: lo que eres; la composición es una mochila: lo que tienes. Un perro es un animal (herencia), pero un auto simplemente tiene un motor (composición).
- composición
- Construir una clase a partir de objetos de otras clases: un objeto guardado como atributo: self.engine = Engine().
- la relación "tiene un"
- "Un auto tiene un motor": una relación que se resuelve con composición, no con herencia.