domingo, 15 de junio de 2025

🧪 Python Nivel 2 – Parte 5: Relaciones entre Clases – Composición y Agregación

Después de aprender herencia, es momento de trabajar otro aspecto clave de la POO: cómo se relacionan las clases entre sí. Esto se logra con técnicas como composición y agregación.


🎯 ¿Qué aprenderás hoy?

✅ Qué es la composición y cómo implementarla
✅ Qué es la agregación y en qué se diferencia
✅ Cómo crear relaciones entre clases (uno-a-uno, uno-a-muchos)
✅ Ejemplos prácticos con objetos reales


🔧 1. Composición

La composición representa una relación fuerte:

“Un objeto contiene otro como parte esencial.”

Si el objeto principal se destruye, los objetos internos también.


class Motor: def arrancar(self): print("🔧 Motor en marcha...") class Coche: def __init__(self): self.motor = Motor() # Composición def arrancar(self): self.motor.arrancar() auto = Coche() auto.arrancar()

🧠 Aprendiste:

  • El objeto Coche crea y contiene a Motor

  • No puedes usar Motor si no existe un Coche


🔧 2. Agregación

La agregación representa una relación débil:

“Un objeto usa a otro, pero no lo controla.”

Se pasa como parámetro, y puede vivir por separado.


class Profesor: def __init__(self, nombre): self.nombre = nombre class Curso: def __init__(self, profesor): self.profesor = profesor # Agregación def mostrar(self): print(f"Curso impartido por {self.profesor.nombre}") profe = Profesor("Ana") curso = Curso(profe) curso.mostrar()

🧠 Aprendiste:

  • El Curso utiliza un Profesor ya existente

  • Si destruyes el Curso, el Profesor sigue existiendo


🧠 Comparación rápida

RelaciónCrea internamenteIndependencia
Composición✅ Sí❌ No
Agregación❌ No✅ Sí

🚀 ¿Qué aprendiste hoy?

✔️ A crear relaciones reales entre objetos
✔️ A modelar sistemas complejos como colecciones, vehículos, usuarios, etc.
✔️ A aplicar buenas prácticas de diseño OOP en Python


📂 Código completo disponible en:
github.com/josecodetech

💬 ¿Te gustaría un proyecto real usando estas relaciones? ¿Un sistema escolar, app o juego?



No hay comentarios:

Publicar un comentario

Se procedera a revision para su pronta publicacion en caso de que no incumpla las normas de blogger.