Design patterns are blueprint solutions to common programming problems. Most of the credit for classifying and describing the design patterns goes to the “Gang of Four” - Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.

They wrote a book in 1994 titled Design Patterns - Elements of Reusable Object-Oriented Software.

Originally the design patterns had nothing to do with JavaScript.

The Gang of Four had split all the design patterns into 3 large groups:

  • Creational patterns
  • Behavioral patterns
  • Structural patterns

Here’s the full list.

Creational Design Patterns

  • Abstract Factory
  • Factory Method
  • Builder
  • Prototype
  • Singleton

Structural Design Patterns

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

Behavioral Design Patterns

  • Chain of Responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor