Diga adiós al caos de comunicación en su aplicación de Python
El patrón de diseño del mediador es un patrón de diseño de comportamiento que ayuda a reducir el acoplamiento entre los componentes de una aplicación al permitirles comunicarse entre sí indirectamente a través de un objeto mediador.
Bibliotecas populares de Python que usan este patrón de diseño
Este patrón de diseño es un patrón ampliamente utilizado en el desarrollo de software y Python tiene muchas bibliotecas populares que lo utilizan.
Aquí hay unos ejemplos:
- Django Signals : Django Signals es una parte del marco web de Django que proporciona una forma de desacoplar los componentes de una aplicación permitiéndoles enviar y recibir señales. El marco Signals utiliza el patrón de diseño Mediator para administrar la comunicación entre los componentes.
- Pygame : Pygame es un conjunto de módulos de Python para crear videojuegos. Pygame usa el patrón Mediator para desacoplar la lógica del juego de los gráficos y el manejo de entrada del juego. El objeto Mediator en Pygame se denomina cola de eventos y gestiona el flujo de eventos en el juego.
- PyQt : PyQt es un conjunto de enlaces de Python para el marco de la aplicación Qt. El marco Qt utiliza el patrón Mediator ampliamente para desacoplar los diversos componentes de la interfaz de usuario. PyQt proporciona un conjunto de clases que implementan el patrón Mediator, como la
QSignalMapperclase. - Flask-Signals : Flask-Signals es una extensión de Flask que proporciona una forma sencilla de agregar señales a su aplicación Flask. Flask-Signals utiliza el patrón Mediator para desacoplar las diversas partes de la aplicación y proporciona una forma de registrar y enviar señales.
- PyMediator : PyMediator es una biblioteca de Python que proporciona una implementación simple del patrón Mediator. Le permite crear un objeto mediador y registrar componentes que necesitan comunicarse entre sí. Proporciona una forma de enviar mensajes entre los componentes a través del objeto mediador.
Cómo funciona
En Python, puede implementar el patrón de mediador usando clases y métodos.
Aquí hay un ejemplo:
class Mediator:
def __init__(self):
self.components = []
def register_component(self, component):
self.components.append(component)
def notify(self, sender):
for component in self.components:
if component != sender:
component.receive(sender)
class Component:
def __init__(self, mediator):
self.mediator = mediator
def send(self):
self.mediator.notify(self)
def receive(self, sender):
print(f"Received message from {sender}")
if __name__ == '__main__':
mediator = Mediator()
component1 = Component(mediator)
component2 = Component(mediator)
mediator.register_component(component1)
mediator.register_component(component2)
component1.send() # Sends message to the mediator
La Componentclase representa los componentes individuales de la aplicación. El sendmétodo envía un mensaje al mediador llamando al notifymétodo del mediador. El receivemétodo recibe el mensaje del mediador e imprime un mensaje en la consola.
En la función principal, creamos un mediador y dos componentes. Registramos los dos componentes con el mediador usando el register_componentmétodo. Luego llamamos al sendmétodo de uno de los componentes, que envía un mensaje al mediador. El mediador notifica al otro componente, que imprime un mensaje en la consola.
Este es solo un ejemplo simple, pero el patrón de mediador puede ser útil para aplicaciones más complejas donde varios componentes necesitan comunicarse entre sí de forma desacoplada.
¡Gracias por tu tiempo!
¡Siéntase libre de , compartir y seguir!

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































