Decorator Design Pattern
The Decorator design pattern is a structural pattern that allows behavior to be added to objects, dynamically, without affecting the behavior of other objects from the same class. The decorator pattern is typically used to extend the functionalities of classes in a flexible and reusable way.