Today we will explore the Decorator pattern, an alternative to subclassing which favors object composition over class inheritance. A common issue of subclassing is its rigidity: when different subclasses provide different features, it's hard to combine them into a unique object.