Patrón Builder — Ejemplo Práctico

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

El patrón Builder permite construir objetos complejos paso a paso, separando el proceso de construcción de su representación final.

1. El Problema de Partida

En generateMetadata de las páginas de knowledge, cada ruta (categoría, post ES, post EN) construye a mano un objeto Metadata gigante: alternates, openGraph, twitter, canonical... Copiando y pegando el mismo bloque de 40 líneas y cambiando 3 campos, con alto riesgo de olvidar un campo (ej. images en twitter).

2. La Solución Builder

Un MetadataBuilder fluido encadena solo los pasos necesarios y aplica valores por defecto sensatos (favicon, locale, tipo article vs website) sin obligar a repetirlos.

3. Uso en generateMetadata

4. Ventajas

  • Sin duplicación: un solo lugar define cómo se sincronizan openGraph/twitter/title.
  • Pasos opcionales: una categoría sin imagen simplemente omite .image(); ninguna rama if extra.
  • Legible como frase: .title().description().path().image().build() documenta el propio proceso.