Pattern Purpose

Abstract Factory many "platforms", one interface for creating a family of products
Builder parse a complex representation, create one of several targets
Factory Method dynamic (decoupled) creation through inheritance
Prototype dynamic (decoupled) creation through delegation
Singleton single instance enforcement, lazy initialization, global access

Adapter impedance-match a legacy component to a new system
Bridge decouple interface from implementation; move beyond encapsulation to insulation
Composite recursive composition by coupling the aggregate class to a common abstraction
Decorator recursive wrappering that supports client-specified incremental embellishment
Facade simple wrapper (or surrogate) to a complicated subsystem
Flyweight use sharing to optimize the use of lots of "little" objects
Proxy use an extra level of indirection to support distributed, controlled, or intelligent access

Chain of Respon OO linked list; launch-and-leave requests with a simple processing pipeline
Command OO callback; promote a method invocation on an object to "full object status"
Interpreter map: domain => language => grammar => hierarchical OO design
Iterator an interface that supports the decoupling of algorithms and data structures
Mediator decouple many peers by promoting many-to-many relationships to "full object status"
Memento OO undo/rollback; externalize an object's state to an opaque object
Observer decouple independent sender (model) from dependent receivers (views)
State OO finite state machine; state inheritance hierarchy, current state wrapper
Strategy legoware algorithm; publish interface in a base class, bury impl in derived classes
Template Method common algorithm and placeholders in base class, variable steps in derived classes
Visitor open for extension, closed for modification; add methods w/o changing existing classes