Design Patterns - foxymoron/test GitHub Wiki

Def

A general, reusable solution to a commonly occurring problem in software design.

History

  • Design Patterns: Elements Of Reusable Object-Oriented Software
  • written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
  • the famous Gang of Four (GoF)
  • was instrumental in pushing the formalised concept of design patterns in software engineering.
  • There are the Classic 23 Patterns introduced by GoF.

Categories

Design patterns are categorized into 3 major groups:

  1. Creational Design Patterns
  • these patterns are for handling object creational mechanisms.
  • solves a problem by controlling the creation process of an object.
  1. Structural Design Patterns
  • concerned with class and object composition
  • help structure or restructure one or more parts without affecting the entire system.
  • help obtain new functionalities without tampering with the existing ones
  1. Behavioral Design Patterns
  • concerned with improving communication between dissimilar objects.

Creational Design Patterns

Structural Design Patterns

Behavioral Design Patterns

References: