3. Decorator
The Decorator design pattern allows behavior to be added to individual objects, dynamically and without affecting other objects of the same class. It provides a flexible alternative to subclassing for extending functionality, promoting code reuse and maintainability.