Name: Decorator Intent: - avoid a combinatorial explosion of subclasses - extend (and retract) the functionality of objects at run-time Structure: - there a decorator interface - subject has a reference to a decorator - the decorator interface has a reference to a decorator - subject delegates activities to its decorator - sometimes there is a null object decorator Notes: - the chain can be forward (subject first) or backward (subject last) - the chain of decorators can be build dynamically