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:
- Creational Design Patterns
- these patterns are for handling object creational mechanisms.
- solves a problem by controlling the creation process of an object.
- 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
- Behavioral Design Patterns
- concerned with improving communication between dissimilar objects.