Implementation
There are many ways to implement Chain of Responsibility in Python, but my favorite implementation is the one by Vespe Savikko [j.mp/savviko]. Vespe's implementation uses dynamic dispatching in a Pythonic style to handle requests [j.mp/ddispatch].
Let's implement a simple event-based system using Vespe's implementation as a guide. The following is the UML class diagram of the system:
The Event
class describes an event. We'll keep it simple, so in our case an event has only name
:
class Event: def __init__(self, name): self.name = name def __str__(self): return self.name
The Widget
class is the core class of the application. The parent ...
Get Mastering Python Design Patterns now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.