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 | ![]() |






















