正常
设计模式
设计模式是前人沉淀下来的、针对反复出现的设计问题的经典解法。这一卷覆盖 GoF 的 21 个核心模式,用现代 C++ 把它们重新实现一遍。
和「定义 + UML + 例子」式的传统讲法不同,我们的路子是从最直觉、最原始的写法起步,一步步逼出每个模式——讲清楚它到底在解决什么问题、每一步演进为什么还不够、以及到了 C++17/20 有了 std::variant / concepts / CRTP / 模板之后,同一个模式能写出怎样更安全、更零开销的版本。
贯穿全卷的几个写法特点:每个模式都带「这里先验证一下」的真实终端输出(不是纸上谈兵);该踩的坑写成 ::: warning 预警块;凡是能用现代 C++ 替代的旧写法,都把「经典 vs 现代」摆在一起比。
配套可编译工程在仓库的 code/volumn_codes/vol4/design-patterns/ 下,每个模式一个独立 CMake 子工程,cmake -S . -B build && cmake --build build 即可跑。
创造型(Creational)
结构型(Structural)
行为型(Behavioral)
进阶:泛型与模板模式(规划中)
经典 GoF 之外,C++ 还有自己的一套「模板级」设计手段,它们是这一卷的延伸方向,后续补齐:
- Policy-Based Design
- 类型擦除(
std::function的底层机制) - CRTP(静态多态)
- Mixin 与组合式设计
- Tag Dispatching 与
if constexpr分派 - NVI(Non-Virtual Interface)
- 模板与 DSL 构建