Learning JavaScript Design Patterns
Let us now proceed to review the table.
Creational |
Based on the concept of creating an object. |
||||||
Class |
|||||||
Factory Method |
This makes an instance of several derived classes based on interfaced data or events. |
||||||
Object |
|||||||
Abstract Factory |
Creates an instance of several families of classes without detailing concrete classes. |
||||||
Builder |
Separates object construction from its representation, always creates the same type of object. |
||||||
Prototype |
A fully initialized instance used for copying or cloning. |
||||||
Singleton |
A class with only a single instance with global access points. |
||||||
|
|
|
|
|
|
|
|
Structural |
Based on the idea of building blocks of objects |
||||||
Class |
|||||||
Adapter |
Match interfaces of different classes therefore classes can work together despite incompatible interfaces |
||||||
Object |
|||||||
Adapter |
Match interfaces of different classes therefore classes can work together despite incompatible interfaces |
||||||
Bridge |
Separates an object's interface from its implementation so the two can vary independently |
||||||
Composite |
A structure of simple and composite objects which makes the total object more than just the sum of its parts. |
||||||
Decorator |
Dynamically add alternate processing to objects. |
||||||
Facade |
A single class that hides the complexity of an entire subsystem. |
||||||
Flyweight |
A fine-grained instance used for efficient sharing of information that is contained elsewhere. |
||||||
Proxy |
A place holder object representing the true object |
||||||
|
|||||||
Behavioral |
Based on the way objects play and work together. |
||||||
Class |
|||||||
Interpreter |
A way to include language elements in an application to match the grammar of the intended language. |
||||||
Template |
Creates the shell of an algorithm in a method, then defer the exact steps to a subclass. |
||||||
Object |
|||||||
Chain of |
A way of passing a request between a chain of objects to find the object that can handle the request. |
||||||
Command |
Encapsulate a command request as an object to enable, logging and/or queuing of requests, and provides error-handling for unhandled requests. |
||||||
Iterator |
Sequentially access the elements of a collection without knowing the inner workings of the collection. |
||||||
Mediator |
Defines simplified communication between classes to prevent a group of classes from referring explicitly to each other. |
||||||
Memento |
Capture an object's internal state to be able to restore it later. |
||||||
Observer |
A way of notifying change to a number of classes to ensure consistency between the classes. |
||||||
State |
Alter an object's behavior when its state changes |
||||||
Strategy |
Encapsulates an algorithm inside a class separating the selection from the implementation |
||||||
Visitor |
Adds a new operation to a class without changing the class |
||||||