Design Pattern
Creational Patterns
Pattern | Description | Image |
---|---|---|
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 | |
Prototype | A fully initialized instance to be copied or cloned | |
Singleton | A class of which only a single instance can exist |
Structural Patterns
Pattern | Description | Image |
---|---|---|
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 | |
Proxy | An object representing another object |
Behavioral Patterns
Pattern | Description | Image |
---|---|---|
Chain of Resp. | 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 | |
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 change |