This material is summarized from http://sourcemaking.com/design_patterns.
Creational instantiation: class creation and object creation.
- Abstract Factory Creates an instance of several families of classes
- Builder Separates object construction from its representation
- Factory Method Creates an instance of several derived classes
- Object Pool Avoid expensive acquisition and release of resources by recycling objects that are no longer in use
- Prototype A fully initialized instance to be copied or cloned
- Singleton A class of which only a single instance can exist
Structural class and object composition.
- Adapter Match interfaces of different classes
- Bridge Separates an objectís interface from its implementation
- Composite A tree structure of simple and composite objects
- Decorator Add responsibilities to objects dynamically
- Facade A single class that represents an entire subsystem
- Flyweight A fine-grained instance used for efficient sharing
- Private Class Data Restricts accessor/mutator access
- Proxy An object representing another object
Behavioral communication among objects.
- Chain of responsibility A way of passing a request between a chain of objects
- Command Encapsulate a command request as an object
- Interpreter A way to include language elements in a program
- Iterator Sequentially access the elements of a collection
- Mediator Defines simplified communication between classes
- Memento Capture and restore an object's internal state
- Null Object Designed to act as a default value of an object
- Observer A way of notifying change to a number of classes
- State Alter an object's behavior when its state changes
- Strategy Encapsulates an algorithm inside a class
- Template method Defer the exact steps of an algorithm to a subclass
- Visitor Defines a new operation to a class without changes