BOOK / SOURCE & READING RECORD
Modern C++ Design: Generic Programming and Design Patterns Applied
Andrei Alexandrescu
1st edition, 2001
Modern C++ Design: Generic Programming and Design Patterns Applied
已完整阅读 2001 年第一版第 1–11 章及附录 A 的可读正文和文本代码:策略、技术、typelist、small-object allocator、广义函子、singleton、智能指针、factory、abstract factory、visitor、multimethods 与线程讨论。私有全文提取共 16122 行,连续分段阅读并补读截断区间 216–554;另读出版社第 1、7、8、11 章用于交叉核对。书中 C++98 和平台线程技巧按历史材料理解,不当作 C++20 推荐实现。
查看版本、实际阅读范围与原文入口 →阅读原创实践:Policy-based design:分离决定,不复制流程 →
策略是可替换的选择,不是模板装饰
策略设计真正分离的是独立决策,而不是把每个成员函数改写成模板。宿主负责维持整体流程,策略负责一个可命名的变化点;如果两项策略必须知道彼此内部状态,它们就不再正交。原书以多重继承和 C++98 技巧实现组合,但这些只是当时的机制。现代代码可通过成员组合和 concepts 表达所需调用,不必复制手写智能指针、破坏性复制或 safe-bool 的历史实现。一个错误处理策略可以选择拒绝还是截断,却不应偷偷改动容量检查规则。泛化还应有停止条件:没有实际第二种选择时,普通函数通常比政策框架更易维护。
阅读定位:第 1 章 1.5、1.9、1.12;第 7 章所有权策略讨论;第 8 章 8.5 错误处理策略。
原文与实际阅读范围
- 第 1 章 Policy-Based Class Design
完整第 1 章,书页 3–21。
- 第 7 章 Smart Pointers
在线打印版的 7.1–7.14 正文全部读过。
- 第 8 章 Object Factories
完整第 8 章,书页 197–218。
- 第 11 章 Multimethods
完整第 11 章,书页 263–300。
- 作者书籍页面
书籍说明和购买指引,不是全书。
作者和出版社保留版权;第三方公开完整 PDF 不代表再发行授权。全文与提取文本只在私有 research/books 保存,公开仅出版社/作者外链和原创课程,不提供第三方下载链接。
能下载不等于已经读完;试读章节不等于全书。这里的原创笔记不是原书全文、译本或逐章替代品。
相关基础知识
相关主题链接用于补充背景,不表示这些既有文章已经按整本书核查。