Design Patterns in C++. A Modern Approach to Application Architecture
300 pages
English
PDF
4.5

Design Patterns in C++. A Modern Approach to Application Architecture

Design Patterns in C++. A Modern Approach to Application Architecture

Author:

Year:

Summary:

The book "Design Patterns in C++. A Modern Approach to Application Architecture" is a practical guide that will help you master classic and modern design patterns in the context of the C++ language. Unlike abstract academic textbooks, this book is built on real code examples using the capabilities of the C++17 and C++20 standards.



What is this book about?

The book thoroughly examines all 23 patterns from the famous "Gang of Four" (GoF), as well as several additional idioms specific to C++. Each pattern is covered according to a unified scheme:

  • Motivation — what problem arises in the code and why the pattern is necessary.
  • Structure — UML class diagram and relationships.
  • Implementation in C++ — ready-made code using smart pointers, move semantics, lambda expressions, and templates.
  • Practical Example — the pattern is applied in the context of a real-world task (logging, working with a database, UI, network interaction).
  • Alternatives and Anti-patterns — when the pattern is harmful and what to use instead.


Who is this book for?

  • Junior Developers (1–2 years of experience) — systematize your knowledge, stop copying code without understanding.
  • Middle Developers — learn to design flexible architecture that is easy to extend and test.
  • Students and Teachers — get a practical perspective on OOP and patterns, far removed from "toy" examples.


What will you learn?

  • How to apply SOLID principles in C++ without over-engineering.
  • The difference between Strategy and State, Decorator and Adapter.
  • How to use CRTP, Pimpl, Type Erasure, and other C++-specific idioms.
  • How patterns help write testable code (DI, Mock objects, dependency injection).
  • How not to overload a project with patterns — when "simplicity" is better than "correctness".


All code examples are available for download and have been tested under GCC, Clang, and MSVC. The book is written in a lively, understandable language and does not require deep knowledge of C++ — a confident grasp of the basics (classes, inheritance, templates) is sufficient.



If you want to stop writing "spaghetti code" and start building programs like a true architect — this book is for you.

Recommendations