- Mediator (patrón de diseño)
-
Mediator (patrón de diseño)
Un Mediator es un patrón de diseño que coordina las relaciones entre sus asociados. Permite la interacción de varios objetos, sin generar acoples fuertes en esas relaciones.
Contenido
Intención
Definir un objeto que encapsule cómo interactúa un conjunto de objetos.
Motivación
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.
Aplicabilidad
Usar el patrón Mediator cuando:
- Un conjunto grande de objetos se comunica de una forma bien definida, pero compleja.
- Reutilizar un objeto se hace difícil por que se relaciona con muchos objetos.
- El comportamiento de muchos objetos que esta distribuido entre varias clases, puede resumirse en una o varias por subclasificación..
Estructura
Participantes
- Mediator (mediador): define una interface para comunicarse con los objetos colegas.
- ConcreteMediator ("mediador concreto"): Implementa el comportamiento cooperativo entre los colegas (como se comunican entre ellos). Además los conoce y mantiene.
- Colleagues ("colegas"): Cada colega conoce su mediador, y usa a este para comunicarse con otros colegas.
Ejemplo explicativo: El mediator es el que tiene la tarifa plana y se encarga de llamar a todos los colegas. Los colegas llaman al mediador para ahorrase unos duros en la factura
Colaboraciones
Los colegas envían y reciben requerimientos (requests) de un objeto mediador. El mediador implementa como se comunican los colegas.
Consecuencias
El patrón Mediator tiene los siguientes beneficios y desventajas:
- Desacopla a los colegas: el patrón Mediator promueve bajar el acoplamiento entre colegas. Se puede variar y rehusar colegas y mediadores independientemente
- Simplifica la comunicación entre objetos: Los objetos que se comunican de la forma "muchos a muchos" puede ser remplazada por una forma "uno a muchos" que es menos compleja y más elegante. Además esta forma de comunicación es más fácil de entender.
- Abstrae como los objetos cooperan: Haciendo a la mediación un concepto independiente y encapsulandolo en un objeto permite enfocar como los objetos interactúan. Esto ayuda a clarificar como los objetos se relacionan en un sistema.
- Centraliza el control: El mediador es el que se encarga de comunicar a los colegas, este puede ser muy complejo, difícil de entender y modificar
Categoría: Patrones de diseño
Wikimedia foundation. 2010.