-
Book Overview & Buying
-
Table Of Contents
Mastering Python Design Patterns
By :
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 aggregation shown in the UML diagram indicates that each widget can have a reference to a parent object, which by convention, we assume is a Widget instance. Note, however, that according to the rules of inheritance, an instance of any of the subclasses of Widget (for example, an instance of MsgText) is also an instance...
Change the font size
Change margin width
Change background colour