Chuck's Academy

Patrones de diseño en JavaScript

Patrón Mediator

El patrón Mediator es un patrón de diseño de comportamiento que define un objeto que encapsula cómo interactúan un conjunto de objetos. Este patrón promueve la comunicación entre objetos de manera controlada y estructurada, reduciendo el acoplamiento entre ellos al hacer que se comuniquen a través de un mediador central.

Características del Patrón Mediator

  1. Desacoplamiento: Reduce el acoplamiento directo entre objetos al hacer que se comuniquen a través de un mediador.
  2. Gestión centralizada: Maneja de manera centralizada la interacción entre múltiples objetos.
  3. Simplicidad: Simplifica las interacciones complejas haciendo que pasen a través de un único punto de control.

Beneficios del Patrón Mediator

  • Mantenimiento: Facilita el mantenimiento y la modificación del sistema al centralizar la lógica de comunicación.
  • Extensibilidad: Permite agregar nuevas funcionalidades y objetos sin afectar significativamente el código existente.
  • Reusabilidad: Facilita la reutilización de objetos independientemente del sistema en el que se encuentren, ya que las reglas de interacción están centralizadas.

Implementación del Patrón Mediator en JavaScript

A continuación, se presentan ejemplos de cómo implementar el patrón Mediator utilizando la sintaxis moderna de ES6.

Ejemplo 1: Mediator Simple

javascript

En este ejemplo, Mediador gestiona la comunicación entre múltiples colegas (Colega). Cuando un colega envía un mensaje, el mediador se asegura de que todos los demás colegas lo reciban.

Ejemplo 2: Mediador en un Sistema de Chat

Vamos a simplificar un sistema de chat utilizando el patrón Mediator.

javascript

En este ejemplo, Chatroom actúa como intermediario entre los participantes del chat. Los participantes pueden enviar y recibir mensajes a través de la sala de chat sin comunicarse directamente entre ellos.

Casos de Uso del Patrón Mediator

El patrón Mediator es útil en situaciones donde:

  1. Interacciones complejas: Existen interacciones complejas entre múltiples objetos.
  2. Desacoplamiento: Se desea reducir el acoplamiento directo entre objetos.
  3. Comunicación centralizada: Se necesita un punto central para gestionar la comunicación entre objetos.

Consideraciones y Buenas Prácticas

  • Evitar sobrecarga: Aunque el patrón Mediator centraliza la comunicación, puede volverse un cuello de botella si maneja demasiadas responsabilidades.
  • Claridad en las interacciones: Documentar bien las interacciones manejadas por el mediador para facilitar el mantenimiento y la comprensión del sistema.
  • Responsabilidades claras: Asegúrate de que el mediador maneje solo la comunicación y no la lógica de negocio para mantener una separación de responsabilidades.

En el próximo capítulo, exploraremos el Patrón Decorator y cómo se puede utilizar para añadir dinámicamente responsabilidades a los objetos.


Pregúntame lo que sea