Patrón Mediator

Lectura de ~3 minutos

Define un objeto que encapsula como interactua un conjunto de objetos.

Aplicabilidad

  • Un conjunto de objetos se comunica de un modo bien definido pero complejo, creando dependencias difíciles de entender.

  • Reusar un objeto es difícil porque hace referencia y se comunica con muchos otros objetos.

  • El comportamiento distribuido en varias clases deberías poder variar sin crear muchas subclases.

Estructura

Mediator Diagram

Se define una interfaz de mediator, permitiendo a cada clase hija definir su comportamiento concreto. A su vez se define una clase abstracta para agrupar el comportamiento del conjunto de objetos. Cada objeto concreto de tipo mediator implementará la interacción entre los objetos del conjunto.

Consecuencias

  • Limita el número de subclases, concentrando comportamiento que de otro modo estaría disperso.

  • Desacopla los objetos del conjunto, permitiendo variar dichos objetos y los mediator de forma independiente.

  • Simplifica los protocolos entre objetos. Reemplaza relaciones tipo muchos-a-muchos por uno-a-muchos, que es más fácil de entender y mantener.

  • Abstrae como interactuan los objetos.

  • Centraliza el control. Cambia la complejidad en la interaccion por la complejudad en los objetos mediator. Esto puede hacer que los mediator sean monolitos difíciles de mantener.

Aquí un pequeño ejemplo en Net core.

Nos vemos en las próximas líneas.

Escrito el 03/01/2019