Sun, Apr 17, 2016
Introduction The Decorator pattern adds new functionality to an existing object without altering its structure. It is a structural pattern as this pattern acts as a wrapper to existing class.
The instanciate a decorator struct which decorates (wraps) the original object and provides additional functionality keeping its methods signature intact.
Purpose Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to inheritance for extending functionality. Wrapping a present, putting it in a box, and wrapping the box.