A structural design pattern called the Decorator Design Pattern enables the dynamic addition of functionality to specific objects without changing the behavior of other objects in the same class. To wrap concrete components, a collection of decorator classes must be created.
Playlist : https://www.youtube.com/playlist?list=PLd-71H_E2kWcn-PjekwXzG94LPaOJN6KL