Diga adeus ao caos de comunicação em seu aplicativo Python

Feb 26 2023
Descubra a magia desse padrão usado por Django, Flask, Pygame e PyQt.
O padrão de design do mediador é um padrão de design comportamental que ajuda a reduzir o acoplamento entre os componentes de um aplicativo, permitindo que eles se comuniquem entre si indiretamente por meio de um objeto mediador. Bibliotecas populares do Python que usam esse padrão de design Esse padrão de design é um padrão amplamente usado no desenvolvimento de software, e o Python tem muitas bibliotecas populares que o utilizam.
Foto de Brett Jordan no Unsplash

O padrão de design do mediador é um padrão de design comportamental que ajuda a reduzir o acoplamento entre os componentes de um aplicativo, permitindo que eles se comuniquem entre si indiretamente por meio de um objeto mediador.

Bibliotecas Python populares que usam esse padrão de design

Esse padrão de design é um padrão amplamente usado no desenvolvimento de software, e o Python tem muitas bibliotecas populares que o utilizam.

aqui estão alguns exemplos:

  1. Django Signals : Django Signals é uma parte da estrutura da web Django que fornece uma maneira de desacoplar os componentes de um aplicativo, permitindo que eles enviem e recebam sinais. A estrutura Signals usa o padrão de design Mediator para gerenciar a comunicação entre os componentes.
  2. Pygame : Pygame é um conjunto de módulos Python para criar videogames. Pygame usa o padrão Mediator para desacoplar a lógica do jogo dos gráficos do jogo e manipulação de entrada. O objeto Mediador no Pygame é chamado de fila de eventos e gerencia o fluxo de eventos no jogo.
  3. PyQt : PyQt é um conjunto de ligações Python para a estrutura de aplicativos Qt. A estrutura Qt usa o padrão Mediator extensivamente para desacoplar os vários componentes da interface do usuário. O PyQt fornece um conjunto de classes que implementam o padrão Mediador, como a QSignalMapperclasse.
  4. Flask-Signals : Flask-Signals é uma extensão do Flask que fornece uma maneira simples de adicionar sinais ao seu aplicativo Flask. Flask-Signals usa o padrão Mediator para desacoplar as várias partes do aplicativo e fornece uma maneira de registrar e despachar sinais.
  5. PyMediator : PyMediator é uma biblioteca Python que fornece uma implementação simples do padrão Mediator. Ele permite que você crie um objeto mediador e registre componentes que precisam se comunicar entre si. Ele fornece uma maneira de enviar mensagens entre os componentes por meio do objeto mediador.

Como funciona

Em Python, você pode implementar o padrão mediador usando classes e métodos.

Aqui está um exemplo:

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

A Componentclasse representa os componentes individuais do aplicativo. O sendmétodo envia uma mensagem ao mediador chamando o notifymétodo do mediador. O receivemétodo recebe a mensagem do mediador e imprime uma mensagem no console.

Na função principal, criamos um mediador e dois componentes. Registramos os dois componentes com o mediador usando o register_componentmétodo. Em seguida, chamamos o sendmétodo de um dos componentes, que envia uma mensagem ao mediador. O mediador notifica o outro componente, que imprime uma mensagem ao console.

Este é apenas um exemplo simples, mas o padrão do mediador pode ser útil para aplicações mais complexas em que vários componentes precisam se comunicar uns com os outros de forma desacoplada.

Obrigado pelo seu tempo!

Sinta-se à vontade para , compartilhar e seguir!