Patrón Strategy — Ejemplo Práctico

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

El patrón Strategy encapsula algoritmos intercambiables en clases separadas.

1. El Problema de Partida

generateMetadata en KnowledgePostPage construye JSON-LD distinto según el type del post: TechArticle para posts handbook, HowTo para posts example con pasos, y WebPage genérico para categorías. Un único if/else con 3 ramas creciendo por cada nuevo tipo de contenido acabaría siendo inmanejable.

2. La Solución Strategy

3. Uso en el contexto (la página)

4. Ventajas

  • Añadir un tipo nuevo (ej. video) = crear una clase más y registrarla, sin tocar buildJsonLd.
  • Cada estrategia se testea aislada, sin necesidad de montar la página completa.
  • Sin if/else creciente: el objeto jsonLdStrategies reemplaza cualquier cadena de condicionales.