[Name] Decorator [In Design Patterns] Yes [In Code Complete[15]] Yes [Other] N/A [Description] 
Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending functionality.