Mediator (Patrón de diseño)

Este artículo trata sobre Mediator. Para otros usos de este término, véase Mediator (desambiguación).
Mediator (Patrón de diseño)
Información sobre la plantilla
Parte de la familia Software Propietario
M9 3d.jpg
Sitio web
machware.com

Mediator (Patrón de diseño).Define un objeto que encapsula como interactuan un conjunto de objetos. Promueve un bajo acoplamiento al evitar que los objetos se refieran unos a otros explicitamente, y permite variar la interaccion entre ellos de forma independiente.


Clasificacion del Patrón

Patrón de Comportamiento.

Intención

Simplificar la comunicacion entre los objetos de un sistema introduciondo un unico objeto que gestiona la distribucion de mensajes entre los otros.

Motivacion

Cuando muchos objetos interactúan con otros objetos, se puede formar una estructura muy compleja, con objetos con muchas conexiones con otros objetos. En un caso extremo cada objeto puede conocer a todos los demás objetos. Para evitar esto el patrón Mediator encapsula el comportamiento de todo un conjunto de objetos en un solo objeto.

Estructura

Extructura d mediador.png

Participantes

  • Mediator: Define una interface para comunicarse con los objetos colegas.
  • ConcreteMediator: Implementa el comportamiento cooperativo entre los colegas (como se comunican entre ellos). Además los conoce y mantiene.
  • Colleagues: Cada colega conoce su mediador, y usa a este para comunicarse con otros colegas.

Colaboraciones

Los colegas envían y reciben requerimientos (requests) de un objeto mediador. El mediador implementa como se comunican los colegas.

Resumen de patrón Mediador

Implementar el patrón mediador indudablemente requiere más planificación y mucho más preparación que cualquiera de los patrones que hemos discutido antes. Sin embargo, en situaciones donde tenemos que controlar interacciones complejas, esto compensa ampliamente el esfuerzo en tres vías:

  • Primero, simplifica el mantenimiento, al localizar su posible comportamiento, en caso contrario se esparce entre diferentes clases en un mismo objeto.
  • Segundo, evita la necesidad de acoplar los objetos.
  • Tercero, esto simplifica la lógica al reemplazar las interacciones "Muchos a muchos" entre controles individuales con interacciones "uno a muchos" entre el mediador y los colegas.

El problema principal del patrón es que, especialmente al tratar con gran número de interacciones, el mediador por sí mismo se puede tornar muy complicado y dificultar su mantenimiento.

Fuentes