Patrón Composite — Ejemplo Práctico

PUBLICADO: 2026-08-16
AUTOR: MANUEL PRIETO
Patrones de Diseño

El patrón Composite trata elementos individuales y jerarquías completas con la misma interfaz.

1. El Problema de Partida

getCategories devuelve categorías planas de _category.json, pero si el knowledge base creciera para soportar subcategorías (ej. arquitectura-de-software > patrones-diseño > creacionales), la navegación tendría que distinguir con if (hasChildren) en cada componente que renderiza el árbol lateral, duplicando la lógica de contar posts o renderizar enlaces.

2. La Solución Composite

3. Uso en la barra lateral

4. Ventajas

  • Un solo componente de navegación sirve para 1 o N niveles de subcategorías futuras.
  • Contar posts totales (countItems) no requiere recorrido manual ni if por tipo de nodo.
  • Extensible: añadir un tercer nivel de anidamiento no toca el código que ya consume CategoryComposite.