Add New Features Without Changing Code — The Decorator Design Pattern

Have you ever needed to add new behavior to an existing class?
like adding logging, notifications, or data compression,
But didn’t want…