图书目录

目录

第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使switchcase支持字符串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