1設計模式概述
1.1計算機軟件發展現狀2
1.2引入設計模式2的必要性
1.3軟件設計的基本原理3
1.3.1高內聚低耦合3
1.3.2面向抽象編程3
1.3.3多用組合少繼承4
1.3.4“開關”原則4
1.4設計模式概述4
1.4.1什麽是設計模式4?
1.4.2為什麽需要設計圖案5?
1.4.3如何正確應用設計模式5
1.5設計模式的分類5
1.5.1創作模式6
1.5.2結構模式6
1.5.3行為模式6
1.6學會歸納總結7
第壹部分創作模式
2曹操獻刀:廠法模式11
2.1三國故事:曹操祭刀12
2.2模式定義13
2.3故事13中的模式分析
2.3.1故事中的角色13
2.3.2抽象分析方法14
2.3.3工廠方法模式的靜態建模15
2.4工廠方法模式實現17的故事
2.4.1創建產品17
2.4.2工廠的建立19
2.4.3故事情節的歷史再現21
2.4.4使用八星包道的測試模式22
2.5設計原則
2.6使用場合28
2.7本章第29點
3肯德基:抽象工廠31
3.1肯德基的故事32
3.2模式定義33
3.3故事中的模式分析33
故事中的角色33
抽象分析34
3.3.3抽象工廠的靜態建模
3.4抽象工廠故事的實現36
3.4.1抽象食品的建立36
3.4.2為不同的食物建立抽象基類37
3.4.3創造特定的食物40
3.4.4工廠的建立
3.4.5創建客戶類別45
3.4.6故事情節的呈現48
3.5設計原則49
3.6使用場合50
3.7本章的要點53
4手機套裝:builder模式54
4.1手機包55
4.2模式定義56
4.3故事模式分析56
4.3.1角色分析56
4.3.2構建器模式57的靜態建模
4.4模式實現58
4 . 4 . 1創建產品-手機包59
4.4.2建立抽象生成器61
4.4.3特定建築商的設立62
4.4.4創建導師65
4.4.5讓客戶訂購手機套餐66
4.4.6如何簡化構建器的實現68
4.5設計原則68
4.6使用場合70
4.7本章要點73
5大學生步入社會:原型模型75
5.1大學生步入社會76
5.2模式定義77
5.3大學生故事的模式分析78
5.3.1故事情節分析78
5.3.2原型模式的靜態建模78
5.4大學生故事的原型模式實現80
5.4.1原型編制81
5.4.2創建工廠以生成原型對象84
5.4.3大學生初入社會時的生活。
5.5設計原則
5.6使用場合95
5.7本章要點96
6課堂互動:單例模式98
6.1 99級故事
6.2模式定義100
6.3模式分析101
6.4模式實現102
6.4.1實現1:創建壹個具有同步線程安全性的singleton對象102。
6.4.2實現2:創建壹個全局類對象的實例作為singleton對象106。
6.4.3改進:多案例模式實現107。
6.5設計原則112
6.6用法112
6.7本章要點114
結構模型的第二部分
7電源轉換:適配器模式117
7.1生活適配器118
7.2模式定義118
7.3模式分析119
7.3.1適配器中的角色119
7.3.2靜態建模119
7.4模式實現120
7.4.1抽象供電機構121
7.4.2建立220V電源122。
7.4.3創建12V電源123
7.4.4測試220V電源和12V電源125。
7.4.5對象適配器126的實現
7.4.6類適配器模式實現129
7.5設計原則132
7.6用法133
7.7本章要點135
8個開關和燈:橋模式137
8.1開關和燈138
8.2模式定義139
8.3綜合分析139
8.4 140的概括
8.4.1建立壹個抽象開關141。
8.4.2電燈實現142
8.4.3客戶端測試145
8.4.4拓展功能的思路146
8.5橋梁模式分析法147
8.6開關和電燈的橋接方式實現147。
8.6.1創建燈光接口147。
8.6.2創建開關148
8.6.3電燈實現151
客戶端測試153
8.7設計原則155
8.8使用場合156
8.9本章要點157
9公司層級:組合模式159
9.1公司層級160
9.2模式定義160
9.3綜合分析161
9.4泛化實現162
9.4.1創建普通員工162
9.4.2創建經理164
客戶端測試168
9.4.4思考系統結構171
9.5組合模式分析法171
9.6公司結構組合模式實現172
9.6.1建立員工抽象172
9.6.2創建經理175
9.6.3創建普通員工177
客戶端測試179
9.7設計原則182
9.8用法183
9.9本章要點184
10染色饅頭:裝飾模式186
10.1染饅頭事件187
10.2模式定義188
10.3概化分析188
10.4泛化實現189
10.4.1創建饅頭接口189
10.4.2普通饅頭190
10.4.3染色饅頭193
10.4.4甜饅頭195
10.4.5如何制作甜玉米饅頭199
10.5裝飾圖案分析方法199
10.6染色饅頭的裱花模式實現200
10.6.1創建抽象裝飾器200
10.6.2創建裝飾202
10.6.3生產甜玉米饅頭204
10.7設計原則206
10.8使用場合207
10.9本章要點209
11美食世界:外觀模式211
11.1美食世界212
11.2模式定義213
11.3歸納分析214
11.4泛化實現214
11.4.1創建糖醋排骨界面214。
11.4.2糖醋排骨實現了215。
11.4.3客戶端測試216
11.5外觀模式分析方法218
11.5.1讓廚師給我們做飯218
11.5.2外觀圖案靜態建模218
11.6糖醋排骨的外觀模式實現219。
11.6.1建立外觀門面219。
客戶端測試221
11.7設計原理222
11.8使用場合224
11.9本章要點227
12五子棋遊戲:享受袁模式229
12.1五子棋遊戲230
12.2架構定義231
12.3模式分析231
12 . 3 . 1五子棋遊戲分析231
靜態建模232
12.4模式實現233
12.4.1創建壹個抽象棋子233
12.4.2象棋實現234
創建壹個象棋工廠234
客戶端測試236
12.4.5如何實現棋子238的位置
12.4.6測試棋子242的外部狀態
12.5設計原則244
12.6使用場合245
12.7本章要點247
13葡萄酒分銷:代理模式249
1酒劑250
13.2模式定義250
13.3模式分析251
消費者購買行為分析251
13.3.2靜態建模
13.4模式實現252
創建壹個葡萄酒制造商253
13.4.2從紅酒廠購買紅酒254
創建壹個葡萄酒代理商255
從紅酒代理商處購買紅酒
13.5設計原則258
13.6使用場合259
13.7本章要點265
第三部分是行為模型
14學生生病:責任鏈模型269
這個學生生病了
14.2架構定義271
14.3壹般抽象分析271
學生請假流程分析271
14.3.2抽象靜態建模
14.4通用抽象實現273
1學生請假273
14.4.2創建抽象的離開消息處理程序275
14.4.3休假處理器277的具體實現
客戶端測試279
如何面對變化282
14.4.6用外觀包裝改變的部分283。
14.5責任鏈模式分析法288
14.5.1是如何實現消息傳遞的呢?56636.86666666661
責任鏈模式的靜態建模288
14.6休假流程責任鏈模式的實現289
14.6.1抽象修改289
14.6.2改進具體的消息處理程序291
14.6.3在外觀上設置消息處理責任鏈292。
客戶端測試296
14.7設計原則296
14.8使用場合297
14.9本章要點299
15郵局:指揮模式301
15.1生活中的郵局302
15.2模式定義303
15.3模式分析303
15.3.1郵局示例分析303
靜態建模303
15.4模式實現304
15.4.1創建消息接收者305
15.4.2創建中間角色郵局305
15.4.3創建消息發送者307
讓郵局開始工作
優化我們的設計
15.5設計原則
15.6使用場合313
15.7本章要點316
16創建您自己的語言:解釋器模式318
創建您自己的語言解釋器319
16.2模式定義320
16.3模式分析320
16 . 3 . 1“Myida”語言分析320
16 . 3 . 2“myida”語言解釋器原理321
16.4模式實現323
創建上下文環境323
16.4.2創建解析表達式326
16.4.3讓“myida”語言解釋器開始工作336
16.5設計原理338
16.6使用場合339
16.7本章要點341
17循環遍歷:叠代器模式343
17.1讓叠代器替換循環344。
17.2模式定義345
17.3模式分析345
17.3.1如何遍歷集合對象345?
17.3.2叠代器模式靜態建模346
17.4模式實現347
17.4.1人員信息實現348
17.4.2實施人員大會349
17.4.3叠代器實現352
17.4.4讓叠代器遍歷集合對象354。
17.4.5叠代器如何面對變化357
17.4.6客戶端360怎麽了
17.5設計原則362
17.6使用場合362
17.7本章要點364
18多人聊天室:調解員模式366
18.1多人聊天室367
18.2模式定義368
18.3模式分析368
多人聊天室368的結構分析
18.3.2靜態建模369
18.4模式實現370
創建用戶界面370
18.4.2創建調解員371
18.4.3創建用戶373
運行多人聊天室377
18.5設計原理380
18.6使用場合380
18.7本章要點382
19通關遊戲:紀念品圖案384。
19.1通關遊戲385
19.2模式定義385
19.3模式分析386
紀念品圖案386的特征
19.3.2紀念品圖案靜態建模386
19.4模式實現387
19.4.1白盒紀念品圖案實現388
19.4.2黑盒紀念品圖案實現396
19.5設計原則404
19.6使用場合405
19.7本章要點407
20高溫警告:觀察者模式409
20.1高溫預警系統10
20.2模式定義411
20.3模式分析411
20.3.1高溫預警過程分析411
20.3.2靜態建模411
20.4模式實現412
20 . 4 . 1創建抽象角色413
20.4.2具體主題的實現
20.4.3具體觀察者認識到419
20.4.4讓系統開始運行421
20.5設計原則
20.6使用場合423
20.7本章要點426
21文檔編輯模式切換:狀態模式428
21.1文檔編輯器中的模式切換429
21.2模式定義430
21.3模式分析430
21.4模式實現431
21.4.1創建空白上下文環境431
21.4.2創建狀態接口431
21.4.3改善上下文內容433
21.4.4創建特定狀態434
21.4.5客戶端測試437
21.5設計原則440
21.6使用場合440
21.7本章要點442
22商場促銷:戰略模式443
22.1商場促銷商品444
22.2模式定義445
22.3模式分析445
22.3.1商品促銷策略分析
22.3.2策略模式的靜態建模446
22.4模式實現446
22.4.1創建策略接口447
22.4.2創建特定策略448
22.4.3創建上下文環境450
22.4.4消費者購物消費451
22.4.5策略模式和條件判斷的比較454
22.5設計原則
22.6使用場合456
22.7本章要點459
23生活行為:模板方法模式461
23.1日常生活行為462
23.2模式定義463
23.3模式分析463
23.3.1生活行為分析463
靜態建模464
23.4模式實現465
23.4.1建立算法框架465
23.4.2創建具體的實施方案467
23.4.3客戶端測試469
23.5設計原則471
23.6使用場合472
23.7本章要點475
24公司層次結構:訪問者模式477
24.1公司層級478
24.2模式定義479
24.3模式分析479
24.3.1組合模式審查479
24.3.2訪客模式分析480
24.3.3訪客模型481的靜態建模
24.4模式實現483
24.4.1員工實現483
24.4.2訪問者實施488
24.4.3讓員工接待訪客490
24.4.4客戶端測試491
24.4.5考慮擴展494
24.5設計原則
24.6使用場合499
24.7本章要點502
25設計模式摘要504
為什麽要學習設計模式505
25.1.1讓工作更輕松505
25.1.2讓程序優雅507
學習設計原理507
25.2設計模式的六個原則509
25.2.1“開關”原理(OCP) 509
25.2.2單壹責任原則(SRP) 519
25.2.3依賴性倒置原則(DIP) 527
25.2.4接口隔離原則(ISP) 536
25.2.5裏克特替代原則(LSP) 543
25.2.6迪米特裏定律(LoD) 544
25.3勤於思考,善於總結553
25.3.1定力、心力和信心553
做壹個有思想的人
實踐出真知
26 MVC設計實踐556
26.1讓妳思維活躍557
26.2如何設計MVC框架557
26.3第壹個MVC框架——Joker MVC 558
環境介紹558
26.3.2 MVC啟航558
26.3.3 Joker MVC架構分析563
26.3.4 Joker MVC架構實現566
26.3.5發布joker-1.0部署測試599