Apply modern C++17 to the implementations of classic design patterns. As well as covering traditional design patterns, this book fleshes out new patterns and approaches that will be useful to C++ developers. The author presents concepts as a fun investigation of how problems can be solved in different ways, along the way using varying degrees of technical sophistication and explaining different sorts of trade-offs.
Design Patterns in Modern C++ also provides a technology demo for modern C++, showcasing how some of its latest features (e.g., coroutines) make difficult problems a lot easier to solve. The examples in this book are all suitable for putting into production, with only a few simplifications made in order to aid readability.
Those with at least some prior programming experience, especially in C++.
Chapter 1: Introduction
Part I: Creational Patterns
Chapter 2: Builder
Chapter 3: Factories
Chapter 4: Prototype
Chapter 5: Singleton
Part II: Structural Patterns
Chapter 6: Adapter
Chapter 7: Bridge
Chapter 8: Composite
Chapter 9: Decorator
Chapter 10: Façade
Chapter 11: Flyweight
Chapter 12: Proxy
Part III: Behavioral Patterns
Chapter 13: Chain of Responsibility
Chapter 14: Command
Chapter 15: Interpreter
Chapter 16: Iterator
Chapter 17: Mediator
Chapter 18: Memento
Chapter 19: Null Object
Chapter 20: Observer
Chapter 21: State
Chapter 22: Strategy
Chapter 23: Template Method
Chapter 24: Visitor
Part IV: Appendix A: Functional Design Patterns
Chapter 25: Maybe Monad