
- creating an object by specifying a class explicitly -- Abstract Factory, Factory Method, Prototype
- dependence on specific operations -- Chain of Responsibilty, Command
- dependence on hardware & software platforms -- Abstract Factory, Bridge
- dependence on object implementation or representation --Abstract Factory, Bridge, Memento, Proxy
- algorithm dependence -- Iterator, Strategy, Template Method, Visitor
- extending functionality by subclassing -- Bridge, Composite, Decorator, Observer
- tight coupling -- Abstract Factory, Bridge, Chain of Responsibilities, Command, Facade, Mediator, Observer
- inability to alter classes conveniently -- Adaptor, Decorator, Visitor