Examples of Observer, Decorator, and Composite design patterns