人人都懂設計模式:從生活中領悟設計模式:Python實現

人人都懂設計模式:從生活中領悟設計模式:Python實現

《人人都懂設計模式:從生活中領悟設計模式:Python實現》,作者羅偉富,電子工業出版社2019年4月出版。

基本介紹

  • 書名:人人都懂設計模式:從生活中領悟設計模式:Python實現
  • 作者:羅偉富
  • ISBN:978-7-121-36112-8
  • 頁數:404
  • 定價:79
  • 出版社:電子工業出版社
  • 出版時間:2019-04
  • 裝幀:平裝
  • 開本:16
內容提要,目錄,

內容提要

設計模式(Design Patterns)是一套被反覆使用、多數人知曉、無數工程師實踐的代碼設計經驗的總結,它是面向對象思想的高度提煉和模板化。
《人人都懂設計模式:從生活中領悟設計模式:Python實現》帶你一起從生活的角度思考設計模式,以輕鬆有趣的小故事開始,由淺入深地講解每一種模式,思考每一種模式,總結每一種模式!力求用更通俗的語言闡述難懂的概念,用更簡單的語法實現複雜的邏輯,用更短小的代碼寫出強悍的程式!使枯燥乏味的概念變得更有樂趣和意義,希望能帶給讀者一種全新的閱讀體驗和思考方式。
《人人都漏拘辯懂設計模式:從生活中領悟設計模式:Python實現》分為3篇:“基礎篇”講解了23種經典設計模式,其中19種常用設計模式分別用單獨的章節講解,其餘模式作為一個合集放在一章中講解;“進階篇”講解了由基礎設計模式衍生出的各種編程機制,包括過濾器模式、對象池技術、回調機制和MVC模式,它們在各大程式語言中都非常重要而且常見;“經驗篇”結合工作經驗和項目積累,分享了對設計模式、設計原則、項目重構的理解和看法。Python作為AI時代最重要的一種計算機語言,在各大語言中的排名逐年上升!本書所有示例代碼均用Python編寫,將會是國內不可多得的一本用Python來講解設計模式的書。
《人人都懂設計模式:從生活中領悟設計模式:Python實現》適合的讀者:一線網際網路軟體開發者、有一定編程基礎的IT職場新人、對設計模式和編程思想感興趣的人士。

目錄

基 礎 篇
第0章 啟程之前,請不要錯過我 2
0.1 Python精簡入門端譽殼采 2
0.1.1 Python的特點 2
0.1.2 基本語法 3
0.1.3 一個例子讓你頓悟 7
0.1.4 重要說明 11
0.2 UML精簡概述 11
0.2.1 UML的定義 11
0.2.2 常見的關係 12
第1章 監聽模式 16
1.1 從生活中領悟監聽模式 16
1.1.1 故事劇情—幻想中的智慧型熱水器 16
1.1.2 用程式來模擬生活 17
1.2 從劇情中思考監聽模式 19
1.2.1 什麼是監聽模式 19
1.2.2 監聽模式設計思想 19
1.3 監聽模式的模型抽象 19
1.3.1 代碼框架 19
1.3.2 類圖 20
1.3.3 基於框架的實現 21
1.3.4 模型說明 22
1.4 實戰套用 23
1.5 套用場景 26
第2章 狀態模式 28
2.1 從生活中領悟狀態模式 28
2.1.1 龍乘故事劇情—人有少、壯、老,水之固、液、氣 28
2.1.2 用程式來模擬生活 29
2.2 從劇情中思考狀態模式 32
2.2.1 什麼是狀態模式 32
2.2.2 狀態模式設計思想 33
2.3 狀態模式的模型抽象 33
2.3.1 代碼框架 33
2.3.2 類圖 35
2.3.3 基於框架的實現 36
2.3.4 模型說明 38
2.4 套用場景 39
第3章 中介模式 40
3.1 從生活中領悟中介模式 40
3.1.1 故事劇情—找房子問中介 40
3.1.2 用程式來模擬生活 41
3.2 從劇情中思考中介模式 46
3.2.1 什麼是中介模式 46
3.2.2 中介模式設計思想 46
3.3 中介模式的模型抽象 48
3.3.1 代碼框架 48
3.3.2 類圖 49
3.3.3 模型說明 50
3.4 實戰套用 51
3.5 套用場景 56
第4章 裝飾模式 57
4.1 從生活中領悟裝飾模式 57
4.1.1 故事劇情—你想怎么搭就怎么搭 57
4.1.2 用程式來模擬生活斷判盼 58
4.2 從劇情中思考裝飾模式 62
4.2.1 什麼是裝飾模式估判市 62
4.2.2 裝飾模式設計思想 63
4.3 裝飾模式的模型抽象 64
4.3.1 類圖 64
4.3.2 Python中的裝飾器 64
4.3.3 模型說明 69
4.4 套用場景 70
第5章 單例模式 71
5.1 從生活中領悟單例模式 71
5.1.1 故事劇情—你是我的唯虹翻局一 71
5.1.2 用程式來模擬生活 72
5.2 從劇情中思考單例模式 73
5.2.1 什麼是單例模式 73
5.2.2 單例模式設計思想 73
5.3 單例模式的模型抽象 73
5.3.1 代碼框架 73
5.3.2 類籃企阿埋圖 78
5.3.3 基於框架的實現 78
5.4 套用場景 79
第6章 克隆模式 80
6.1 從生活中領悟克隆模式 80
6.1.1 故事劇情—給你一個分身術 80
6.1.2 用程式來模擬生活 80
6.2 從劇情中思考克隆模式 82
6.2.1 什麼是克隆模式 82
6.2.2 淺拷貝與深拷貝 82
6.3 克隆模式的模型抽象 86
6.3.1 代碼框架 86
6.3.2 類圖 86
6.3.3 基於框架的實現 87
6.3.4 模型說明 87
6.4 實戰套用 88
6.5 套用場景 90
第7章 職責模式 91
7.1 從生活中領悟職責模式 91
7.1.1 故事劇情—我的假條去哪兒了 91
7.1.2 用程式來模擬生活 92
7.2 從劇情中思考職責模式 96
7.2.1 什麼是職責模式 96
7.2.2 職責模式設計思想 96
7.3 職責模式的模型抽象 97
7.3.1 代碼框架 97
7.3.2 類圖 98
7.3.3 基於框架的實現 99
7.3.4 模型說明 102
7.4 套用場景 103
第8章 代理模式 104
8.1 從生活中領悟代理模式 104
8.1.1 故事劇情—幫我拿一下快遞 104
8.1.2 用程式來模擬生活 105
8.2 從劇情中思考代理模式 107
8.2.1 什麼是代理模式 107
8.2.2 代理模式設計思想 107
8.3 代理模式的模型抽象 107
8.3.1 代碼框架 107
8.3.2 類圖 109
8.3.3 基於框架的實現 110
8.3.4 模型說明 111
8.4 套用場景 111
第9章 外觀模式 113
9.1 從生活中領悟外觀模式 113
9.1.1 故事劇情—學妹別慌,學長幫你 113
9.1.2 用程式來模擬生活 114
9.2 從劇情中思考外觀模式 116
9.2.1 什麼是外觀模式 116
9.2.2 外觀模式設計思想 116
9.3 外觀模式的模型抽象 117
9.3.1 類圖 117
9.3.2 軟體的分層結構 117
9.3.3 模型說明 119
9.4 實戰套用 119
9.5 套用場景 123
第10章 疊代模式 124
10.1 從生活中領悟疊代模式 124
10.1.1 故事劇情—下一個就是你了 124
10.1.2 用程式來模擬生活 125
10.2 從劇情中思考疊代模式 128
10.2.1 什麼是疊代模式 128
10.2.2 疊代模式設計思想 129
10.3 疊代模式的模型抽象 130
10.3.1 代碼框架 130
10.3.2 Python中的疊代器 132
10.3.3 類圖 136
10.3.4 模型說明 137
10.4 套用場景 138
第11章 組合模式 139
11.1 從生活中領悟組合模式 139
11.1.1 故事劇情—自己組裝電腦,價格再降三成 139
11.1.2 用程式來模擬生活 140
11.2 從劇情中思考組合模式 146
11.2.1 什麼是組合模式 146
11.2.2 組合模式設計思想 147
11.3 組合模式的模型抽象 148
11.3.1 代碼框架 148
11.3.2 類圖 149
11.3.3 模型說明 150
11.4 實戰套用 150
11.5 套用場景 153
第12章 構建模式 154
12.1 從生活中領悟構建模式 154
12.1.1 故事劇情—你想要一輛車還是一個莊園 154
12.1.2 用程式來模擬生活 155
12.2 從劇情中思考構建模式 157
12.2.1 什麼是構建模式 157
12.2.2 構建模式設計思想 157
12.2.3 與工廠模式的區別 158
12.2.4 與組合模式的區別 158
12.3 構建模式的模型抽象 159
12.3.1 類圖 159
12.3.2 基於框架的實現 160
12.3.3 模型說明 163
12.4 套用場景 164
第13章 適配模式 166
13.1 從生活中領悟適配模式 166
13.1.1 故事劇情——有個轉換器就好了 166
13.1.2 用程式來模擬生活 167
13.2 從劇情中思考適配模式 170
13.2.1 什麼是適配模式 170
13.2.2 適配模式設計思想 170
13.3 適配模式的模型抽象 172
13.3.1 代碼框架 172
13.3.2 類圖 172
13.3.3 模型說明 173
13.4 實戰套用 174
13.5 套用場景 184
第14章 策略模式 185
14.1 從生活中領悟策略模式 185
14.1.1 故事劇情—怎么來不重要,人到就行 185
14.1.2 用程式來模擬生活 186
14.2 從劇情中思考策略模式 188
14.2.1 什麼是策略模式 188
14.2.2 策略模式設計思想 188
14.3 策略模式的模型抽象 189
14.3.1 類圖 189
14.3.2 模型說明 190
14.4 實戰套用 190
14.5 套用場景 195
第15章 工廠模式 196
15.1 從生活中領悟工廠模式 196
15.1.1 故事劇情—你要拿鐵還是摩卡呢 196
15.1.2 用程式來模擬生活 197
15.2 從劇情中思考工廠模式 199
15.2.1 什麼是簡單工廠模式 199
15.2.2 工廠模式設計思想 199
15.3 工廠三姐妹 199
15.3.1 簡單工廠模式 200
15.3.2 工廠方法模式 201
15.3.3 抽象工廠模式 203
15.4 進一步思考 205
15.5 實戰套用 205
第16章 命令模式 209
16.1 從生活中領悟命令模式 209
16.1.1 故事劇情—大閘蟹,走起 209
16.1.2 用程式來模擬生活 210
16.2 從劇情中思考命令模式 213
16.2.1 什麼是命令模式 213
16.2.2 命令模式設計思想 213
16.3 命令模式的模型抽象 214
16.3.1 代碼框架 214
16.3.2 類圖 215
16.3.3 模型說明 216
16.4 實戰套用 216
16.5 套用場景 224
第17章 備忘模式 225
17.1 從生活中領悟備忘模式 225
17.1.1 故事劇情—好記性不如爛筆頭 225
17.1.2 用程式來模擬生活 226
17.2 從劇情中思考備忘模式 228
17.2.1 什麼是備忘模式 228
17.2.2 備忘模式設計思想 229
17.3 備忘模式的模型抽象 229
17.3.1 類圖 229
17.3.2 代碼框架 230
17.3.3 模型說明 232
17.4 實戰套用 232
17.5 套用場景 235
第18章 享元模式 236
18.1 從生活中領悟享元模式 236
18.1.1 故事劇情—顏料很貴,必須充分利用 236
18.1.2 用程式來模擬生活 237
18.2 從劇情中思考享元模式 239
18.2.1 什麼是享元模式 239
18.2.2 享元模式設計思想 239
18.3 享元模式的模型抽象 239
18.3.1 類圖 239
18.3.2 基於框架的實現 240
18.3.3 模型說明 242
18.4 套用場景 243
第19章 訪問模式 244
19.1 從生活中領悟訪問模式 244
19.1.1 故事劇情—一千個讀者一千個哈姆雷特 244
19.1.2 用程式來模擬生活 245
19.2 從劇情中思考訪問模式 246
19.2.1 什麼是訪問模式 246
19.2.2 訪問模式設計思想 247
19.3 訪問模式的模型抽象 247
19.3.1 代碼框架 247
19.3.2 類圖 248
19.3.3 基於框架的實現 249
19.3.4 模型說明 250
19.4 實戰套用 251
19.5 套用場景 255
第20章 其他經典設計模式 256
20.1 模板模式 256
20.1.1 模式定義 256
20.1.2 類圖結構 257
20.1.3 代碼框架 257
20.1.4 套用案例 259
20.1.5 套用場景 261
20.2 橋接模式 261
20.2.1 模式定義 261
20.2.2 類圖結構 261
20.2.3 套用案例 262
20.2.4 套用場景 266
20.3 解釋模式 266
20.3.1 模式定義 266
20.3.2 類圖結構 266
20.3.3 套用案例 267
20.3.4 套用場景 271
進 階 篇
第21章 深入解讀過濾器模式 274
21.1 從生活中領悟過濾器模式 274
21.1.1 故事劇情—製作一杯鮮純細膩的豆漿 274
21.1.2 用程式來模擬生活 275
21.2 從劇情中思考過濾器模式 275
21.2.1 過濾器模式 276
21.2.2 與職責模式的聯繫 276
21.3 過濾器模式的模型抽象 276
21.3.1 代碼框架 277
21.3.2 類圖 278
21.3.3 基於框架的實現 278
21.3.4 模型說明 279
21.4 實戰套用 280
21.5 套用場景 282
第22章 深入解讀對象池技術 283
22.1 從生活中領悟對象池技術 283
22.1.1 故事劇情—共享讓出行更便捷 283
22.1.2 用程式來模擬生活 284
22.2 從劇情中思考對象池機制 287
22.2.1 什麼是對象池 287
22.2.2 與享元模式的聯繫 287
22.3 對象池機制的模型抽象 288
22.3.1 代碼框架 288
22.3.2 類圖 291
22.3.3 基於框架的實現 292
22.3.4 模型說明 294
22.4 套用場景 295
第23章 深入解讀回調機制 296
23.1 從生活中領悟回調機制 296
23.1.1 故事劇情—把你的技能亮出來 296
23.1.2 用程式來模擬生活 296
23.2 從劇情中思考回調機制 298
23.2.1 回調機制 298
23.2.2 設計思想 299
23.3 回調機制的模型抽象 299
23.3.1 面向過程的實現方式 299
23.3.2 面向對象的實現方式 300
23.3.3 模型說明 301
23.4 實戰套用 302
23.4.1 基於回調函式的實現 302
23.4.2 基於策略模式的實現 303
23.4.3 回調在異步中的套用 307
23.5 套用場景 310
第24章 深入解讀MVC模式 311
24.1 從生活中領悟MVC模式 311
24.1.1 故事劇情—定格最美的一瞬間 311
24.1.2 用程式來模擬生活 312
24.2 從劇情中思考MVC模式 316
24.2.1 MVC模式 317
24.2.2 與中介模式的聯繫 317
24.2.3 與外觀模式的聯繫 317
24.3 MVC模式的模型抽象 318
24.3.1 MVC 318
24.3.2 MVP 318
24.3.3 MVVM 319
24.3.4 模型說明 320
24.4 套用場景 320
經 驗 篇
第25章 關於設計模式的理解 324
25.1 眾多書籍之下為何還要寫此書 324
25.2 設計模式玄嗎 324
25.3 如何區分不同的模式 325
25.4 編程思想的三重境界 325
第26章 關於設計原則的思考 327
26.1 SOLID原則 327
26.1.1 單一職責原則 327
26.1.2 開放封閉原則 331
26.1.3 里氏替換原則 334
26.1.4 依賴倒置原則 337
26.1.5 接口隔離原則 341
26.2 是否一定要遵循這些設計原則 348
26.2.1 軟體設計是一個逐步最佳化的過程 348
26.2.2 不是一定要遵循這些設計原則 349
26.3 更為實用的設計原則 349
26.3.1 LoD原則(Law of Demeter) 349
26.3.2 KISS原則(Keep It Simple and Stupid) 350
26.3.3 DRY原則(Don’t Repeat Yourself) 351
26.3.4 YAGNI原則(You Aren't Gonna Need It) 353
26.3.5 Rule Of Three原則 353
26.3.6 CQS原則(Command-Query Separation) 354
第27章 關於項目重構的思考 355
27.1 什麼叫重構 355
27.2 為何要重構 355
27.3 什麼時機進行重構 356
27.4 如何重構代碼 357
27.4.1 重命名 357
27.4.2 函式重構 358
27.4.3 重新組織數據 359
27.4.4 用設計模式改善代碼設計 360
27.5 代碼整潔之道 360
27.5.1 命名的學問 360
27.5.2 整潔代碼的案例 362
附錄A 23種經典設計模式的索引對照表 368
附錄B Python中__new__、__init__和__call__的用法 370
附錄C Python中metaclass的原理 377
第3章 中介模式 40
3.1 從生活中領悟中介模式 40
3.1.1 故事劇情—找房子問中介 40
3.1.2 用程式來模擬生活 41
3.2 從劇情中思考中介模式 46
3.2.1 什麼是中介模式 46
3.2.2 中介模式設計思想 46
3.3 中介模式的模型抽象 48
3.3.1 代碼框架 48
3.3.2 類圖 49
3.3.3 模型說明 50
3.4 實戰套用 51
3.5 套用場景 56
第4章 裝飾模式 57
4.1 從生活中領悟裝飾模式 57
4.1.1 故事劇情—你想怎么搭就怎么搭 57
4.1.2 用程式來模擬生活 58
4.2 從劇情中思考裝飾模式 62
4.2.1 什麼是裝飾模式 62
4.2.2 裝飾模式設計思想 63
4.3 裝飾模式的模型抽象 64
4.3.1 類圖 64
4.3.2 Python中的裝飾器 64
4.3.3 模型說明 69
4.4 套用場景 70
第5章 單例模式 71
5.1 從生活中領悟單例模式 71
5.1.1 故事劇情—你是我的唯一 71
5.1.2 用程式來模擬生活 72
5.2 從劇情中思考單例模式 73
5.2.1 什麼是單例模式 73
5.2.2 單例模式設計思想 73
5.3 單例模式的模型抽象 73
5.3.1 代碼框架 73
5.3.2 類圖 78
5.3.3 基於框架的實現 78
5.4 套用場景 79
第6章 克隆模式 80
6.1 從生活中領悟克隆模式 80
6.1.1 故事劇情—給你一個分身術 80
6.1.2 用程式來模擬生活 80
6.2 從劇情中思考克隆模式 82
6.2.1 什麼是克隆模式 82
6.2.2 淺拷貝與深拷貝 82
6.3 克隆模式的模型抽象 86
6.3.1 代碼框架 86
6.3.2 類圖 86
6.3.3 基於框架的實現 87
6.3.4 模型說明 87
6.4 實戰套用 88
6.5 套用場景 90
第7章 職責模式 91
7.1 從生活中領悟職責模式 91
7.1.1 故事劇情—我的假條去哪兒了 91
7.1.2 用程式來模擬生活 92
7.2 從劇情中思考職責模式 96
7.2.1 什麼是職責模式 96
7.2.2 職責模式設計思想 96
7.3 職責模式的模型抽象 97
7.3.1 代碼框架 97
7.3.2 類圖 98
7.3.3 基於框架的實現 99
7.3.4 模型說明 102
7.4 套用場景 103
第8章 代理模式 104
8.1 從生活中領悟代理模式 104
8.1.1 故事劇情—幫我拿一下快遞 104
8.1.2 用程式來模擬生活 105
8.2 從劇情中思考代理模式 107
8.2.1 什麼是代理模式 107
8.2.2 代理模式設計思想 107
8.3 代理模式的模型抽象 107
8.3.1 代碼框架 107
8.3.2 類圖 109
8.3.3 基於框架的實現 110
8.3.4 模型說明 111
8.4 套用場景 111
第9章 外觀模式 113
9.1 從生活中領悟外觀模式 113
9.1.1 故事劇情—學妹別慌,學長幫你 113
9.1.2 用程式來模擬生活 114
9.2 從劇情中思考外觀模式 116
9.2.1 什麼是外觀模式 116
9.2.2 外觀模式設計思想 116
9.3 外觀模式的模型抽象 117
9.3.1 類圖 117
9.3.2 軟體的分層結構 117
9.3.3 模型說明 119
9.4 實戰套用 119
9.5 套用場景 123
第10章 疊代模式 124
10.1 從生活中領悟疊代模式 124
10.1.1 故事劇情—下一個就是你了 124
10.1.2 用程式來模擬生活 125
10.2 從劇情中思考疊代模式 128
10.2.1 什麼是疊代模式 128
10.2.2 疊代模式設計思想 129
10.3 疊代模式的模型抽象 130
10.3.1 代碼框架 130
10.3.2 Python中的疊代器 132
10.3.3 類圖 136
10.3.4 模型說明 137
10.4 套用場景 138
第11章 組合模式 139
11.1 從生活中領悟組合模式 139
11.1.1 故事劇情—自己組裝電腦,價格再降三成 139
11.1.2 用程式來模擬生活 140
11.2 從劇情中思考組合模式 146
11.2.1 什麼是組合模式 146
11.2.2 組合模式設計思想 147
11.3 組合模式的模型抽象 148
11.3.1 代碼框架 148
11.3.2 類圖 149
11.3.3 模型說明 150
11.4 實戰套用 150
11.5 套用場景 153
第12章 構建模式 154
12.1 從生活中領悟構建模式 154
12.1.1 故事劇情—你想要一輛車還是一個莊園 154
12.1.2 用程式來模擬生活 155
12.2 從劇情中思考構建模式 157
12.2.1 什麼是構建模式 157
12.2.2 構建模式設計思想 157
12.2.3 與工廠模式的區別 158
12.2.4 與組合模式的區別 158
12.3 構建模式的模型抽象 159
12.3.1 類圖 159
12.3.2 基於框架的實現 160
12.3.3 模型說明 163
12.4 套用場景 164
第13章 適配模式 166
13.1 從生活中領悟適配模式 166
13.1.1 故事劇情——有個轉換器就好了 166
13.1.2 用程式來模擬生活 167
13.2 從劇情中思考適配模式 170
13.2.1 什麼是適配模式 170
13.2.2 適配模式設計思想 170
13.3 適配模式的模型抽象 172
13.3.1 代碼框架 172
13.3.2 類圖 172
13.3.3 模型說明 173
13.4 實戰套用 174
13.5 套用場景 184
第14章 策略模式 185
14.1 從生活中領悟策略模式 185
14.1.1 故事劇情—怎么來不重要,人到就行 185
14.1.2 用程式來模擬生活 186
14.2 從劇情中思考策略模式 188
14.2.1 什麼是策略模式 188
14.2.2 策略模式設計思想 188
14.3 策略模式的模型抽象 189
14.3.1 類圖 189
14.3.2 模型說明 190
14.4 實戰套用 190
14.5 套用場景 195
第15章 工廠模式 196
15.1 從生活中領悟工廠模式 196
15.1.1 故事劇情—你要拿鐵還是摩卡呢 196
15.1.2 用程式來模擬生活 197
15.2 從劇情中思考工廠模式 199
15.2.1 什麼是簡單工廠模式 199
15.2.2 工廠模式設計思想 199
15.3 工廠三姐妹 199
15.3.1 簡單工廠模式 200
15.3.2 工廠方法模式 201
15.3.3 抽象工廠模式 203
15.4 進一步思考 205
15.5 實戰套用 205
第16章 命令模式 209
16.1 從生活中領悟命令模式 209
16.1.1 故事劇情—大閘蟹,走起 209
16.1.2 用程式來模擬生活 210
16.2 從劇情中思考命令模式 213
16.2.1 什麼是命令模式 213
16.2.2 命令模式設計思想 213
16.3 命令模式的模型抽象 214
16.3.1 代碼框架 214
16.3.2 類圖 215
16.3.3 模型說明 216
16.4 實戰套用 216
16.5 套用場景 224
第17章 備忘模式 225
17.1 從生活中領悟備忘模式 225
17.1.1 故事劇情—好記性不如爛筆頭 225
17.1.2 用程式來模擬生活 226
17.2 從劇情中思考備忘模式 228
17.2.1 什麼是備忘模式 228
17.2.2 備忘模式設計思想 229
17.3 備忘模式的模型抽象 229
17.3.1 類圖 229
17.3.2 代碼框架 230
17.3.3 模型說明 232
17.4 實戰套用 232
17.5 套用場景 235
第18章 享元模式 236
18.1 從生活中領悟享元模式 236
18.1.1 故事劇情—顏料很貴,必須充分利用 236
18.1.2 用程式來模擬生活 237
18.2 從劇情中思考享元模式 239
18.2.1 什麼是享元模式 239
18.2.2 享元模式設計思想 239
18.3 享元模式的模型抽象 239
18.3.1 類圖 239
18.3.2 基於框架的實現 240
18.3.3 模型說明 242
18.4 套用場景 243
第19章 訪問模式 244
19.1 從生活中領悟訪問模式 244
19.1.1 故事劇情—一千個讀者一千個哈姆雷特 244
19.1.2 用程式來模擬生活 245
19.2 從劇情中思考訪問模式 246
19.2.1 什麼是訪問模式 246
19.2.2 訪問模式設計思想 247
19.3 訪問模式的模型抽象 247
19.3.1 代碼框架 247
19.3.2 類圖 248
19.3.3 基於框架的實現 249
19.3.4 模型說明 250
19.4 實戰套用 251
19.5 套用場景 255
第20章 其他經典設計模式 256
20.1 模板模式 256
20.1.1 模式定義 256
20.1.2 類圖結構 257
20.1.3 代碼框架 257
20.1.4 套用案例 259
20.1.5 套用場景 261
20.2 橋接模式 261
20.2.1 模式定義 261
20.2.2 類圖結構 261
20.2.3 套用案例 262
20.2.4 套用場景 266
20.3 解釋模式 266
20.3.1 模式定義 266
20.3.2 類圖結構 266
20.3.3 套用案例 267
20.3.4 套用場景 271
進 階 篇
第21章 深入解讀過濾器模式 274
21.1 從生活中領悟過濾器模式 274
21.1.1 故事劇情—製作一杯鮮純細膩的豆漿 274
21.1.2 用程式來模擬生活 275
21.2 從劇情中思考過濾器模式 275
21.2.1 過濾器模式 276
21.2.2 與職責模式的聯繫 276
21.3 過濾器模式的模型抽象 276
21.3.1 代碼框架 277
21.3.2 類圖 278
21.3.3 基於框架的實現 278
21.3.4 模型說明 279
21.4 實戰套用 280
21.5 套用場景 282
第22章 深入解讀對象池技術 283
22.1 從生活中領悟對象池技術 283
22.1.1 故事劇情—共享讓出行更便捷 283
22.1.2 用程式來模擬生活 284
22.2 從劇情中思考對象池機制 287
22.2.1 什麼是對象池 287
22.2.2 與享元模式的聯繫 287
22.3 對象池機制的模型抽象 288
22.3.1 代碼框架 288
22.3.2 類圖 291
22.3.3 基於框架的實現 292
22.3.4 模型說明 294
22.4 套用場景 295
第23章 深入解讀回調機制 296
23.1 從生活中領悟回調機制 296
23.1.1 故事劇情—把你的技能亮出來 296
23.1.2 用程式來模擬生活 296
23.2 從劇情中思考回調機制 298
23.2.1 回調機制 298
23.2.2 設計思想 299
23.3 回調機制的模型抽象 299
23.3.1 面向過程的實現方式 299
23.3.2 面向對象的實現方式 300
23.3.3 模型說明 301
23.4 實戰套用 302
23.4.1 基於回調函式的實現 302
23.4.2 基於策略模式的實現 303
23.4.3 回調在異步中的套用 307
23.5 套用場景 310
第24章 深入解讀MVC模式 311
24.1 從生活中領悟MVC模式 311
24.1.1 故事劇情—定格最美的一瞬間 311
24.1.2 用程式來模擬生活 312
24.2 從劇情中思考MVC模式 316
24.2.1 MVC模式 317
24.2.2 與中介模式的聯繫 317
24.2.3 與外觀模式的聯繫 317
24.3 MVC模式的模型抽象 318
24.3.1 MVC 318
24.3.2 MVP 318
24.3.3 MVVM 319
24.3.4 模型說明 320
24.4 套用場景 320
經 驗 篇
第25章 關於設計模式的理解 324
25.1 眾多書籍之下為何還要寫此書 324
25.2 設計模式玄嗎 324
25.3 如何區分不同的模式 325
25.4 編程思想的三重境界 325
第26章 關於設計原則的思考 327
26.1 SOLID原則 327
26.1.1 單一職責原則 327
26.1.2 開放封閉原則 331
26.1.3 里氏替換原則 334
26.1.4 依賴倒置原則 337
26.1.5 接口隔離原則 341
26.2 是否一定要遵循這些設計原則 348
26.2.1 軟體設計是一個逐步最佳化的過程 348
26.2.2 不是一定要遵循這些設計原則 349
26.3 更為實用的設計原則 349
26.3.1 LoD原則(Law of Demeter) 349
26.3.2 KISS原則(Keep It Simple and Stupid) 350
26.3.3 DRY原則(Don’t Repeat Yourself) 351
26.3.4 YAGNI原則(You Aren't Gonna Need It) 353
26.3.5 Rule Of Three原則 353
26.3.6 CQS原則(Command-Query Separation) 354
第27章 關於項目重構的思考 355
27.1 什麼叫重構 355
27.2 為何要重構 355
27.3 什麼時機進行重構 356
27.4 如何重構代碼 357
27.4.1 重命名 357
27.4.2 函式重構 358
27.4.3 重新組織數據 359
27.4.4 用設計模式改善代碼設計 360
27.5 代碼整潔之道 360
27.5.1 命名的學問 360
27.5.2 整潔代碼的案例 362
附錄A 23種經典設計模式的索引對照表 368
附錄B Python中__new__、__init__和__call__的用法 370
附錄C Python中metaclass的原理 377

相關詞條

熱門詞條

聯絡我們