Decorator classes mirror the type of the components they decorate. (In fact, they are the same type as the components they decorate, either through inheritance or interface implementation.)
ß Decorators change the behavior of their components by adding new functionality before and/or after (or even in place of) method calls to the component.
ß You can wrap a component with any number of decorators.