Patrón Visitor — Ejemplo Práctico

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

El patrón Visitor añade una operación nueva sobre una jerarquía existente sin modificarla.

1. El Problema de Partida

Se quiere mostrar "X min de lectura" en cada post de knowledge. El AST que produce next-mdx-remote al parsear tiene nodos de distinto tipo (paragraph, code, heading, image), y cada uno cuenta distinto para el tiempo de lectura (código se lee más lento, imágenes suman un tiempo fijo). Añadir esta lógica directamente en el parser de MDX ensuciaría una dependencia externa que no debería modificarse.

2. La Solución Visitor

3. Uso

4. Ventajas

  • El AST de next-mdx-remote no se toca para nada; la lógica vive fuera, en el visitante.
  • Añadir una métrica nueva (ej. contar enlaces externos) = un LinkCountVisitor nuevo, sin tocar acceptAstNode.
  • Reutilizable para cualquier operación futura sobre el árbol de contenido (índice de tabla de contenidos, extracción de imágenes, etc.).