Chain of Responsibility Pattern in Python
Chain of Responsibility Pattern in Python anhand eines praktischen, online ausführbaren Beispiels lernen.
Was ist Chain of Responsibility Pattern?
Chain of Responsibility Pattern in Python anhand eines praktischen, online ausführbaren Beispiels lernen.
Wann wird dieser Ansatz verwendet?
- Wiederkehrende Probleme des Objektdesigns mit bewährten Strukturen lösen.
- Verantwortlichkeiten entkoppeln, damit Code leichter erweiterbar und testbar ist.
- Eine gemeinsame Entwurfssprache für Architekturgespräche im Team verwenden.
Beispielcode
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))
Erwartete Ausgabe
Manager approved 500
So funktioniert es
Dieses Beispiel zeigt Chain of Responsibility Pattern in Python. Ändere die Eingabewerte, um den Ablauf zu untersuchen.
Ändere die Werte und führe das Programm im CodeUtility Python Online-Compiler aus, ohne Python lokal zu installieren.
Übungsaufgaben
Verändere Eingaben und Randfälle, bevor du die Lösung mit größeren Datenmengen testest.
- Ersetze die Beispieldomäne, ohne die Struktur des Patterns zu verändern.
- Vergleiche das Pattern mit einer einfacheren Implementierung und erläutere die Abwägungen.
- Schreibe Tests für jeden Beteiligten, bevor du eine weitere Implementierung hinzufügst.