Decorator Pattern
The Decorator Design Pattern is a structural pattern that allows behavior to be added to an individual object, either statically or dynamically, without affecting the behavior of other objects from the same class. It involves a set of decorator classes that are used to wrap concrete components. Decorator classes mirror the type of the components they decorate (they have the same interface), but add or override behavior.
This pattern is very beneficial when there's a need to extend the behavior of a single object of class and not all of them. It provides a more flexible way to add responsibilities to objects as opposed to inheriting from them, because it can add these responsibilities to objects at runtime.