Implementation
There are many ways to implement a Chain of Responsibility in Python, but my favorite implementation is the one by Vespe Savikko (https://legacy.python.org/workshops/1997-10/proceedings/savikko.html). Vespe's implementation uses dynamic dispatching in a Pythonic style to handle requests (http://j.mp/ddispatch).
Let's implement a simple event-based system using Vespe's implementation as a guide. Here is a Unified Modeling Language (UML) class diagram of an event-based system:
The Event
class describes an event. We'll keep it simple, so in our case, an event has only name
, as illustrated in the following code snippet:
class Event: def __init__(self, name): self.name = name def __str__(self): ...