Skip to main content

Inicia sesión en CleanKata

Sigue tu progreso, gana XP y desbloquea todas las lecciones.

Al iniciar sesión aceptas nuestros Términos de uso y Política de privacidad.

Patrones de Diseño80 XP8 min

Composite: Estructuras en Árbol

Compone objetos en estructuras de árbol y trata objetos individuales y grupos de forma uniforme — itera un sistema de archivos igual sea un archivo o una carpeta.

Por qué importa

Cuando tienes una jerarquía de objetos — menús que contienen submenús, carpetas que contienen archivos, componentes de UI que contienen otros — el código cliente tiende a preguntar "¿es esto una hoja o un contenedor?" antes de actuar. Esa verificación de tipos se dispersa por todos lados y falla al agregar nuevos tipos de nodos. Composite da a hojas y contenedores la misma interfaz. El código cliente llama a size() en un archivo o una carpeta — no sabe ni le importa cuál es.

Dónde aparece Composite en la práctica

El DOM es un Composite — element.textContent funciona en un elemento simple o en todo un subárbol. El árbol de componentes de React es un Composite — renderizar un componente hoja y un componente compuesto usa la misma llamada render(). Los organigramas, las listas de materiales y los árboles de expresiones (donde una subexpresión es en sí misma una expresión) siguen el mismo patrón.

💡Conclusión clave

Cuando los clientes deben tratar ítems individuales y grupos de forma idéntica, Composite les da la misma interfaz — el árbol se reduce a una única llamada.

🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.

Pista: Cuando los clientes deben tratar ítems individuales y grupos de forma idéntica, Composite les da la misma interfaz — el árbol se reduce a una única llamada.

✗ Tu versión