Decorator, Factory Method and Flyweight