Patterns |
Type |
Description |
Creational Patterns |
Factory |
This pattern is used to create concrete class instances without specifying the exact class type. |
|
Abstract Factory |
This pattern is used to create concrete class instances without specifying the exact class type. The Abstract Factory Pattern provides a way to encapsulate a group of individual factories that have a common theme. |
|
Flyweight |
A pattern used to maximize the sharing of objects resulting in reduced memory consumption. |
|
Singleton |
This pattern insures that only a single instance of a given object can exist. |
|
Builder |
This pattern separate the construction of a complex object from its representation so that the same construction process can create different representations.. |
Structural Patterns |
Adapter |
Convert the interface of a class into another interface clients expect. Adapter lets the classes work together that couldn’t otherwise because of incompatible interfaces |
|
Bridge |
Decouples an abstraction from its implementation so that the two can vary independantly. |
|
Composite |
Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. |
|
Decorator |
Allows an objects behavior to be altered at runtime. |
|
Facade |
Used to provide a simpler interface into a more complicated portion of code. |
|
Proxy |
Provides a Placeholder for another object to control access to it. |
Behavioral Patterns |
Chain of Responsibility |
The chain of responsibility pattern is a way of communicating between objects. |
|
Command |
Encapsulates a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations. |
|
Iterator |
Provides a way to sequentially access aggregate objects without exposing the structure of the aggregate. |
|
Mediator |
The mediator pattern encapsulate the interaction between a set of objects. |
|
Memento |
Allows you to save the state of an object externally from that object. |
|
Observer |
Allows a single object to notify many dependent objects that its state has changed. |
|
State |
Allows an object to change its behavior when its internal state changes. |
|
Strategy |
Allows multiple algorithms to be used interchangeably at runtime. |
|
Visitor |
The visitor design pattern enables us to create new operations to be performed on an existing structure. |
|
Template Method |
Defines the skeleton of an algorithm then lets subclasses implement the behavior that can vary. |