Design Patterns

Creational

Factory Method

This pattern creates objects without exposing the creation logic of each object.

Singleton

This creational design pattern creates one and only one instance of a class

Structural

Adapter

Allows client code to access a class different from the class it expects to access

Bridge

Allows you to separate abstraction from implementation

Composite

To execute operations on a bunch of objects as a whole

Proxy

Creates a substitute/wrapper that steps in between the client and the subject they want to access

Behavioural

Chain of Responsibility

Enables one or more classes to handle a request

Template

Defines a general structure of an algorithm with the ability to change the logic in specific embodiments or cases

Observer

A one to many dependencies; when one object changes state, all of its dependencies are notified and changed automatically

State

Allows an object to change behaviour based on its state

Strategy

Client program and a family of algorithms can be called independently; the family of algorithms share a common interface

Visitor

Centralize operations on an object structure to allow polymorphism and vary independently