GoF Design patterns implementations based on Dmitri Nesteruk's course on Udemy.
- Builder When piecewise object construction is complicated, provide an API for doing it succinctly.
- Factory A component responsible solely for the wholesale (not piecewise) creation of objects.
- Singleton A component which is instantiated only once.
- Composite A mechanism for treating individual (scalar) objects and compositions of objects in a uniform manner.
- Adapter A construct which adapts an exisiting interface X to conform to the required interface Y.
- State A pattern in which the object's behavior is determined by its state. An object transitions from one state to another (something needs to trigger a transition). A formalized construct which manage state and transitions is called a state machine.
- Strategy Enables the exact behavior of a system to be selected either at run-time (dynamic) or compile time ( static) (also known as Policy).
- Decorator Facilitates the addition of behaviors to individual objects without inheriting from them.
- Iterator An object that facilitates the traversal of a data structure.
- Visitor A pattern where a component (visitor) is allowed to traverse the entire inheritance hierarchy. Implemented by propagating a single visit() method throughout the entire hierarchy.