Structural Patterns
ConcreteComponent
is wrapped by decorators. ConcreteDecoratorA
and ConcreteDecoratorB
extend the behavior of
ConcreteComponent
without modifying its code. The client_code function shows how a component and its decorated versions behave.