The Decorator Pattern is a structural design pattern used to add new behaviors or responsibilities to an object dynamically without affecting the behavior of other objects of the same class.
Instead of using subclassing to extend functionality, the Decorator Pattern uses composition and allows you to "wrap" an object with additional functionality.