Chain of Responsibility Pattern in Python
Aprenda Chain of Responsibility Pattern in Python com um exemplo prático que pode editar e executar online.
O que é Chain of Responsibility Pattern?
Aprenda Chain of Responsibility 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
main.py
class Approver:
# Chain of Responsibility: offer a request to handlers in order.
def __init__(self, name, limit, next_approver=None):
self.name, self.limit, self.next = name, limit, next_approver
def approve(self, amount):
# Handle locally or pass the request along the chain.
if amount <= self.limit:
return f"{self.name} approved {amount}"
if self.next:
return self.next.approve(amount)
return "Declined"
chain = Approver("Lead", 100, Approver("Manager", 1000))
print(chain.approve(500))
Saída esperada
Manager approved 500
Como funciona
Este exemplo demonstra Chain of Responsibility 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.
- Substitua o domínio do exemplo preservando a estrutura do padrão.
- Compare o padrão com uma implementação mais simples e explique as diferenças.
- Escreva testes para cada participante antes de adicionar outra implementação.