/DesignPatterns

A collection of design patterns in modern C++ based on Dmitri Nesteruk Udemy course.

Primary LanguageC++MIT LicenseMIT

Design Patterns

A collection of design patterns in modern C++ based on Dmitri Nesteruk Udemy course Design Patterns in Modern C++.

SOLID Design Principles

Gamma Categorization

Design Patterns are typically split into three categories. This is called Gamma Categorization after Erick Gamma, one of the GoF authors.

  • Creational Patterns
    • Deal with the creation (construction) of objects
    • Explicit (constructor) vs. implicit (DI, reflection, etc.)
    • Wholesale (single statement) vs. piecewise (step-by-step)
  • Structural Patterns
    • Concerned with the structure (e.g., class members)
    • Many patterns are wrappers that mimic the underlying class' interface
    • Stress the importance of good API design
  • Behavioral Patterns
    • They are all different; no central theme

References

Design Patterns in Modern C++

Design Patterns

Design Principle and Design Patterns