Design Pattern in Javascript

What is Design pattern?

A design pattern is a general, reusable solution to a commonly occurring problem.

Out of all the patterns we are going to look few of them below.

Creational

Singletone Pattern

Ensure a class only has one instance, and provide a global point to access it.

Prototype Pattern

Specify the kinds of object to create using prototypical instance, and create new objects by copying the prototype.

Factory Pattern

Define an interface for creating an object, but let subclasses decide which class to instantiate.

Builder Pattern

Separate the construction of a complex object from its representation so that the same construction process can create different representations.

Structural

Adapter Pattern

Convert the interface of a class into another client except.
Adapter lets classes work together that couldn’t because of incompatible interfaces.

Proxy Pattern

Provide a placeholder for another object to control to access to it.

Composite Pattern

Compose objects into tree structures to represent part-whole hierarchies. Composite let clients treat individual objects and compositions of objects uniformly.

Decorator Pattern

Attach additional responsibilities to an object dynamically. Decorator provide a flexible alternative to subclassing for extending functionality.

Behavioural

Chain of responsibility

Avoid coupling the sender of a request to its receiver by giving more than one object a change to handle the request.
Chain the receiving objects and pass the request along the chain.

Command Pattern

Encapsulate a request as an object, there by letting you parameterise with different requests, queue or log requests and support undoable operations.

Iterator Pattern

Provide a way to access the element of an aggregate object sequentially without exposing its underlying representation.

Observer Pattern

Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

Strategy Pattern

Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm very independently from clients that use it.

33