第1章 前述 1
1.1 大師 1
1.2 成為更優(yōu)秀的程序員 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 系統(tǒng)化思考 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環(huán)境 12
1.9.1 Linux環(huán)境 12
1.9.2 Mac環(huán)境 13
1.9.3 Windows環(huán)境 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 游戲循環(huán) 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 在現實環(huán)境中實現適配器模式 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 系統(tǒng)演進 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的優(yōu)勢 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章 狀態(tài)模式 185
15.1 狀態(tài)模式 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章 發(fā)布-訂閱模式 241
20.1 分布式消息發(fā)送器 246
20.2 結束語 248
20.3 練習 249
附錄 設計模式快速參考 251