Padrões de projeto em Python

Observer Pattern in Python

Aprenda Observer Pattern in Python com um exemplo prático que pode editar e executar online.

O que é Observer Pattern?

Aprenda Observer Pattern in Python com um exemplo prático que pode editar e executar online.

Quando usar?

  • Resolver problemas recorrentes de design de objetos com estruturas comprovadas.
  • Desacoplar responsabilidades para facilitar a extensão e os testes do código.
  • Usar um vocabulário de design comum ao discutir arquitetura com a equipe.

Código de exemplo

Executar código →
main.py
class Order:
    # Observer: publish changes to an open-ended subscriber list.
    def __init__(self): self.listeners = []
    def subscribe(self, listener): self.listeners.append(listener)

    def set_status(self, status):
        # Broadcast the change to all current observers.
        for listener in self.listeners:
            listener(status)


order = Order()
order.subscribe(lambda status: print(f"Email received: {status}"))
order.set_status("shipped")

Saída esperada

Email received: shipped

Como funciona

Este exemplo demonstra Observer Pattern in Python. Altere os valores de entrada para explorar o código.

Altere os valores e execute o programa no compilador Python online CodeUtility sem instalar Python.

Exercícios práticos

Altere as entradas e teste casos de borda antes de usar conjuntos de dados maiores.

  1. Substitua o domínio do exemplo preservando a estrutura do padrão.
  2. Compare o padrão com uma implementação mais simples e explique as diferenças.
  3. Escreva testes para cada participante antes de adicionar outra implementação.
Executar no IDE Python →