目录
第1章设计模式简介1
1.1设计模式和设计模式的分类1
1.2各种设计模式的特点和适用场景2
1.2.1创建型设计模式2
1.2.2结构型设计模式3
1.2.3行为型设计模式4
1.3本章小结6
第2章C++和C++元编程基础知识8
2.1C++开发环境的准备9
2.1.1安装MSYS2环境10
2.1.2安装编辑器12
2.1.3安装集成开发环境18
2.2C++基础预备知识21
2.2.1C++语言的基本语法22
2.2.2C++语言面向对象编程23
2.2.3接口和实现28
2.3C++元编程基础知识29
2.3.1C++函数模板31
2.3.2C++类模板32
2.3.3模板参数34
2.4本章小结34
第3章C++程序的调试和测试36
3.1C++程序的调试36
3.2C++单元测试37
3.3C++性能测试38
3.4元代码的调试38
3.5本章小结39
第4章C++11和现代C++开发40
4.1C++11的特性40
4.1.1关键字mutable40
4.1.2右值引用42
4.1.3引用折叠43
4.1.4万能引用44
4.1.5Lambda表达式45
4.1.6新的for语句47
4.1.7constexpr关键字48
4.1.8类型推导48
4.1.9可变模板参数49
4.1.10字符串的字面量50
4.1.11移动语义51
4.1.12static_assert51
4.2本书中用到的STL类型52
4.2.1智能指针52
4.2.2线程和线程同步60
4.2.3类型萃取type_traits64
4.2.4元组类型std::tuple65
4.2.5std::function函数对象和std::bind绑定器67
4.2.6std::hash68
4.2.7std::map和std::unordered_map68
4.3本书中用到的数据结构和算法70
4.3.1万能数据类型variant70
4.3.2使switchcase支持字符串76
4.3.3线程池78
4.4本章小结83
第5章创建型模式84
5.1工厂模式及其实现84
5.1.1工厂模式的传统结构84
5.1.2使用C++11实现工厂模式的结构85
5.1.3工厂模式的实现和解析86
5.1.4应用示例89
5.2抽象工厂模式及其实现90
5.2.1抽象工厂模式的传统结构91
5.2.2使用C++11实现抽象工厂模式的结构91
5.2.3工厂模式的实现和解析92
5.2.4应用示例97
5.3单例模式及其实现100
5.3.1单例模式传统结构101
5.3.2C++11模板实现的单例模式结构101
5.3.3实现和解析101
5.3.4应用示例104
5.4生成器模式及其实现105
5.4.1传统结构106
5.4.2C++11的模板实现结构107
5.4.3实现和解析107
5.4.4应用示例111
5.5原型模式及其实现113
5.5.1传统原型模式113
5.5.2C++11模板实现的原型模式114
5.5.3实现和解析115
5.5.4应用示例117
5.6本章小结118
第6章结构型模式120
6.1适配器模式及其实现120
6.1.1传统适配器模式121
6.1.2C++11元编程下的结构设计121
6.1.3实现和解析122
6.1.4应用示例125
6.2桥接模式及其实现128
6.2.1传统桥接模式128
6.2.2C++11元编程下的结构设计128
6.2.3实现和解析129
6.2.4应用示例132
6.3组合模式及其实现134
6.3.1传统组合模式134
6.3.2C++11元编程下的结构设计135
6.3.3实现和解析135
6.3.4应用示例139
6.4装饰器模式及其实现141
6.4.1传统装饰器模式141
6.4.2C++11元编程下的结构设计142
6.4.3实现和解析142
6.4.4应用示例147
6.5外观模式及其实现150
6.5.1传统外观模式150
6.5.2C++11元编程下的结构设计151
6.5.3实现和解析152
6.5.4应用示例156
6.6享元模式及其实现160
6.6.1传统享元模式160
6.6.2C++11元编程下的结构设计161
6.6.3实现和解析162
6.6.4应用示例167
6.7代理模式及其实现169
6.7.1传统代理模式170
6.7.2C++11元编程下的结构设计170
6.7.3实现和解析170
6.7.4应用示例174
6.8本章小结178
第7章行为型模式180
7.1责任链模式及其实现180
7.1.1传统责任链模式181
7.1.2C++11元编程下的结构设计181
7.1.3实现和解析182
7.1.4应用示例185
7.2命令模式及其实现187
7.2.1传统命令模式188
7.2.2C++11元编程下的结构设计188
7.2.3实现和解析189
7.2.4应用示例196
7.3解释器模式及其实现198
7.3.1传统解释器模式199
7.3.2C++11元编程下的结构设计200
7.3.3实现和解析200
7.3.4应用示例203
7.4迭代器模式及其实现205
7.5中介者模式及其实现207
7.5.1传统中介者模式208
7.5.2C++11元编程下的结构设计208
7.5.3实现和解析209
7.5.4应用示例217
7.6备忘录模式及其实现219
7.6.1传统备忘录模式219
7.6.2C++11元编程下的结构设计219
7.6.3实现和解析219
7.6.4应用示例222
7.7观察者模式及其实现223
7.7.1传统观察者模式223
7.7.2C++11元编程下的结构设计224
7.7.3实现和解析225
7.7.4应用示例228
7.8策略模式及其实现229
7.8.1传统策略模式230
7.8.2C++11元编程下的结构设计230
7.8.3实现和解析231
7.8.4应用示例233
7.9状态模式及其实现235
7.9.1传统状态模式235
7.9.2C++11元编程下的结构设计236
7.9.3实现和解析236
7.9.4应用示例244
7.10模板方法模式及其实现250
7.11访问者模式及其实现250
7.11.1传统访问者模式250
7.11.2C++11元编程下的访问者模式251
7.11.3实现和解析251
7.11.4应用示例254
7.12本章小结255
第8章框架应用实战256
8.1DTU软件的设计问题256
8.2DTU软件的AT指令257
8.3通信通道和通道转发260
8.4数据加密解密261
8.5命令行参数的解析262
8.6配置文件263
8.7自定义脚本266
8.8本章小结267
后记268