图书目录

 

第1章  前述   1

1.1  大师   1

1.2  成为更优秀的程序员   3

1.2.1  刻意训练   4

1.2.2  单一关注点   4

1.2.3  快速反馈   5

1.2.4  自我拓展   5

1.2.5  站在巨人的肩膀上   6

1.2.6  如何入手   6

1.2.7  保持路线正确的能力   7

1.3  系统化思考   8

1.4  思维模型   8

1.5  这项任务的适用工具   9

1.6  设计模式的概念   9

1.6.1  是什么造就了设计模式   10

1.6.2  分类   10

1.7  将用到的工具   11

1.8  本书的阅读方式   12

1.9  配置Python环境   12

1.9.1  Linux环境   12

1.9.2  Mac环境   13

1.9.3  Windows环境   14

1.9.4  VirtualEnv   15

1.10  编辑器   16

1.10.1  Atom   16

1.10.2  LightTable   16

1.10.3  PyCharm   16

1.10.4  Vim   17

1.10.5  Emacs   17

1.10.6  Sublime Text   17

1.11  本章小结   18

第2章  单例模式   19

2.1  问题   19

2.2  进入对象   23

2.3  整理   26

2.4  练习   29

第3章  原型模式   31

3.1  问题   31

3.2  迈出第一步之后   31

3.3  一个真实游戏的基础   32

3.4  实现原型模式   41

3.5  浅拷贝与深拷贝的对比   42

3.6  浅拷贝   43

3.7  处理嵌套结构   43

3.8  深拷贝   44

3.9  将所学知识用在项目中   45

3.10  练习   48

第4章  工厂模式   49

4.1  准备开始   49

4.2  游戏循环   50

4.3  工厂方法   54

4.4  抽象工厂   56

4.5  本章小结   57

4.6  练习   58

第5章  建造者模式   59

5.1  反模式   65

5.2  练习   70

第6章  适配器模式   71

6.1  不要重复自己(DRY)   72

6.2  关注点分离   73

6.3  样本问题   75

6.3.1  类适配器   76

6.3.2  对象适配器模式   77

6.3.3  鸭子类型   77

6.4  在现实环境中实现适配器模式   78

6.5  结束语   80

6.6  练习   81

第7章  装饰器模式   83

7.1  装饰器模式   85

7.1.1  闭包   89

7.1.2  保留函数的__name__和__doc__属性   89

7.2  装饰类   92

7.3  结束语   94

7.4  练习   95

第8章  外观模式   97

8.1  POS示例   97

8.2  系统演进   100

8.3  使外观模式凸显出来的原因   101

8.4  结束语   103

8.5  练习   104

第9章  代理模式   105

9.1  记忆法   105

9.2  代理模式   107

9.2.1  远程代理   109

9.2.2  虚拟代理   110

9.2.3  保护代理   110

9.3  结束语   110

9.4  练习   110

第10章  责任链模式   113

10.1  安装一台WSGI服务器   114

10.2  身份验证头信息   115

10.3  责任链模式   119

10.4  在项目中实现责任链   121

10.5  一种更趋Python化的实现   124

10.6  结束语   128

10.7  练习   129

第11章  命令模式   131

11.1  控制turtle   131

11.2  命令模式   133

11.3  结束语   138

11.4  练习   139

第12章  解释器模式   141

12.1  特定领域语言   141

12.1.1  DSL的优势   144

12.1.2  DSL的劣势   144

12.1.3  组合模式   148

12.1.4  使用组合模式的内部DSL实现   149

12.2  实现解释器模式   152

12.3  结束语   157

12.4  练习   158

第13章  迭代器模式   159

13.1  迭代器模式的Python内部实现   161

13.1.1  Itertools   166

13.1.2  生成器函数   167

13.1.3  生成器表达式   169

13.2  结束语   169

13.3  练习   170

第14章  观察者模式   171

14.1  结束语   183

14.2  练习   183

第15章  状态模式   185

15.1  状态模式   187

15.2  结束语   191

15.3  练习   191

第16章  策略模式   193

16.1  结束语   197

16.2  练习   197

第17章  模板方法模式   199

17.1  结束语   207

17.2  练习   208

第18章  访问者模式   209

18.1  访问者模式   218

18.2  结束语   226

18.3  练习   227

第19章  模型-视图-控制器模式   229

19.1  模型-视图-控制器概述   232

19.1.1  控制器   234

19.1.2  模型   234

19.1.3  视图   235

19.1.4  总述   235

19.2  结束语   239

19.3  练习   240

第20章  发布-订阅模式   241

20.1  分布式消息发送器   246

20.2  结束语   248

20.3  练习   249

附录  设计模式快速参考   251