Patrón Mediator

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

💡 Ver Caso Práctico: Ejemplo Práctico del Patrón Mediator

Mediator (Mediador) es un patrón de diseño comportamental que reduce las dependencias caóticas entre objetos, restringiendo las comunicaciones directas entre ellos y forzándolos a colaborar solo a través de un objeto mediador.

Propósito y Caso de Uso

Utiliza Mediator cuando varios componentes necesiten comunicarse entre sí (ej. widgets de un formulario: si cambia el país, se filtran las provincias; si cambia el plan, se recalcula el precio) y esa comunicación directa entre todos ellos genere un grafo de dependencias enredado (N componentes conociéndose entre sí). A diferencia de Observer (broadcast sin coordinación central), Mediator centraliza y coordina explícitamente las reacciones.

Estructura del Patrón

  1. Mediador (Interfaz): Declara el método de notificación que usan los componentes (notify()).
  2. Mediador Concreto: Conoce a todos los componentes y coordina la lógica de reacción entre ellos.
  3. Componentes: Solo conocen al mediador, nunca a los demás componentes directamente.
Cargando diagrama...

Flujo de Funcionamiento

  1. Notificación: Un componente notifica al mediador cuando cambia su estado, sin saber quién reaccionará.
  2. Coordinación central: El mediador decide qué otros componentes deben actualizarse y cómo.
  3. Aislamiento: Los componentes permanecen desacoplados entre sí; solo el mediador conoce las reglas de interacción.

Ejemplos de Implementación Reales

Cuándo NO usarlo

Si solo dos componentes se comunican de forma simple y estable, introducir un mediador añade una capa de indirección innecesaria (YAGNIGlosarioYAGNI (You Aren't Gonna Need It)Principio de Extreme Programming (XP) que establece que un programador no debe añadir funcionalidad hasta que sea estrictamente necesario. Su objetivo es evitar la sobre-ingeniería (over-engineering), previniendo código para funcionalidades hipotéticas.Ver término completo →).