A Decoration is an object that is stored as part of another object, called the Decorable.
The lifetime of the Decoration is tied to the lifetime of the Decorable. This means the Decoration is constructed when the Decorable's constructor is called, and the Decoration is destructed when the Decorable's destructor is called.
Finally, the decoration can only be accessed through the decorable.
The Decorator pattern is an easy way to add parts to an existing object without changing the object.