設計模式就該這樣學:基於經典框架源碼和真實業務場景

設計模式就該這樣學:基於經典框架源碼和真實業務場景

《設計模式就該這樣學:基於經典框架源碼和真實業務場景》由電子工業出版社於2020年7月出版,作者是譚勇德(Tom)。本書獨創基於經典框架源碼和真實業務場景講設計模式,含JDK、Spring、MyBatis、Tomcat、Netty等源碼,讓設計模式從經典套用中來再到真實實踐中去真正落地。

基本介紹

  • 書名:設計模式就該這樣學:基於經典框架源碼和真實業務場景
  • 作者:譚勇德(Tom)
  • 出版社:電子工業出版社
  • 出版時間:2020年7月 
  • 頁數:504 頁
  • 定價:118 元
  • 開本:16 開
  • ISBN:9787121392085
內容簡介,作者簡介,圖書目錄,

內容簡介

《設計模式就該這樣學:基於經典框架源碼和真實業務場景》從軟體架構設計必備的通用技能UML開始,重點介紹常用的類圖和時序圖;然後介紹軟體架構設計常用的七大原則;接著結合JDK、Spring、MyBatis、Tomcat、Netty等經典框架源碼對GoF的23種設計模式展開分析,並結合作者多年“踩坑填坑”和“教學答疑”經驗,用深刻、全面、通俗、生動、有趣、接地氣的方式結合真實業務場景分析每種設計模式,治癒“設計模式選擇困難症”;之後介紹4種常用的新設計模式;最後總結軟體架構、設計模式與套用框架之間的區別。
如果你已經有編程經驗,那么你一定要學一遍設計模式;如果你是資深工程師或者架構師,那么本書將顛覆你以前的認知;如果你覺得設計模式晦澀難懂,那么本書一定能讓你醍醐灌頂;如果你看框架源碼總是力不從心,那么本書就是“內功心法”。

作者簡介

譚勇德(Tom)
咕泡學院聯合創始人。“手寫源碼學習法”開創者、“Java架構師成長路徑”制定人、“程式設計師職業成長路線圖”制定者,Java架構師講師。著有暢銷書《Spring 5核心原理與30個類手寫實戰》《Netty 4核心原理與手寫RPC框架實戰》。
10餘年Java從業經驗,在大型IT公司擔任過CTO、系統架構師。精通Java、JS、CSS、AS、PHP等;負責過多個大型分散式系統的微服務架構的技術改造;多年來對主流技術框架有深入研究及獨特見解;開發過多套企業內部UI框架和ORM框架;熱衷於分享經驗,共同進步。
格言:不只做一個技術者,更要做一個思考者。

圖書目錄

第1篇 軟體設計前奏篇
第1章 重新認識UML 2
1.1 UML的定義 2
1.2 UML套用場景 2
1.3 UML基本構件簡介 3
1.3.1 事物 3
1.3.2 關係 5
1.3.3 圖 6
第2章 設計模式常用的UML圖 7
2.1 類圖 7
2.1.1 繼承關係 8
2.1.2 實現關係 8
2.1.3 組合關係 9
2.1.4 聚合關係 10
2.1.5 關聯關係 11
2.1.6 依賴關係 12
2.1.7 類關係記憶技巧 14
2.2 時序圖 15
2.2.1 時序圖的作用 15
2.2.2 時序圖組成元素 16
2.2.3 時序圖組合片段 17
2.2.4 時序圖畫法及套用實踐 19
第3章 七大軟體架構設計原則 22
3.1 開閉原則 22
3.1.1 開閉原則的定義 22
3.1.2 使用開閉原則解決實際問題 23
3.2 依賴倒置原則 24
3.2.1 依賴倒置原則的定義 24
3.2.2 使用依賴倒置原則解決實際問題 25
3.3 單一職責原則 28
3.3.1 單一職責原則的定義 28
3.3.2 使用單一職責原則解決實際問題 28
3.4 接口隔離原則 31
3.4.1 接口隔離原則的定義 31
3.4.2 使用接口隔離原則解決實際問題 31
3.5 迪米特法則 33
3.5.1 迪米特法則的定義 33
3.5.2 使用迪米特法則解決實際問題 33
3.6 里氏替換原則 35
3.6.1 里氏替換原則的定義 35
3.6.2 使用里氏替換原則解決實際問題 36
3.7 合成復用原則 40
3.7.1 合成復用原則的定義 40
3.7.2 使用合成復用原則解決實際問題 40
3.8 軟體架構設計原則小結 42
第4章 關於設計模式的那些事兒 43
4.1 本書與GOF的《設計模式》的關係 43
4.2 為什麼一定要學習設計模式 45
4.2.1 寫出優雅的代碼 45
4.2.2 更好地重構項目 47
4.2.3 經典框架都在用設計模式解決問題 58
第2篇 創建型設計模式
第5章 簡單工廠模式 60
5.1 工廠模式的歷史由來 60
5.2 簡單工廠模式概述 61
5.2.1 簡單工廠模式的定義 61
5.2.2 簡單工廠模式的套用場景 61
5.2.3 簡單工廠模式的UML類圖 61
5.2.4 簡單工廠模式的通用寫法 62
5.3 使用簡單工廠模式封裝產品創建細節 63
5.4 簡單工廠模式在框架源碼中的套用 66
5.4.1 簡單工廠模式在JDK源碼中的套用 66
5.4.2 簡單工廠模式在Logback源碼中的套用 67
5.5 簡單工廠模式擴展 67
5.5.1 簡單工廠模式的優點 67
5.5.2 簡單工廠模式的缺點 67
第6章 工廠方法模式 68
6.1 工廠方法模式概述 68
6.1.1 工廠方法模式的定義 68
6.1.2 工廠方法模式的套用場景 69
6.1.3 工廠方法模式的UML類圖 69
6.1.4 工廠方法模式的通用寫法 70
6.2 使用工廠方法模式實現產品擴展 71
6.3 工廠方法模式在LOGBACK源碼中的套用 72
6.4 工廠方法模式擴展 73
6.4.1 工廠方法模式的優點 73
6.4.2 工廠方法模式的缺點 73
第7章 抽象工廠模式 74
7.1 抽象工廠模式概述 74
7.1.1 抽象工廠模式的定義 74
7.1.2 關於產品等級結構和產品族 75
7.1.3 抽象工廠模式的套用場景 76
7.1.4 抽象工廠模式的UML類圖 76
7.1.5 抽象工廠模式的通用寫法 76
7.2 使用抽象工廠模式解決實際問題 78
7.2.1 使用抽象工廠模式支持產品擴展 78
7.2.2 使用抽象工廠模式重構資料庫連線池 81
7.3 抽象工廠模式在SPRING源碼中的套用 88
7.4 抽象工廠模式擴展 89
7.4.1 抽象工廠模式的優點 89
7.4.2 抽象工廠模式的缺點 90
第8章 單例模式 91
8.1 單例模式概述 91
8.1.1 單例模式的定義 91
8.1.2 單例模式的套用場景 91
8.1.3 單例模式的UML類圖 92
8.1.4 單例模式的通用寫法 92
8.2 使用單例模式解決實際問題 93
8.2.1 餓漢式單例寫法的弊端 93
8.2.2 還原執行緒破壞單例的事故現場 93
8.2.3 雙重檢查鎖單例寫法閃亮登場 97
8.2.4 看似完美的靜態內部類單例寫法 100
8.2.5 還原反射破壞單例模式的事故現場 101
8.2.6 更加優雅的枚舉式單例寫法問世 103
8.2.7 還原反序列化破壞單例模式的事故現場 108
8.2.8 使用容器式單例寫法解決大規模生產單例的問題 114
8.2.9 ThreadLocal單例詳解 115
8.3 單例模式在框架源碼中的套用 116
8.3.1 單例模式在JDK源碼中的套用 116
8.3.2 單例模式在Spring源碼中的套用 117
8.4 單例模式擴展 121
8.4.1 單例模式的優點 121
8.4.2 單例模式的缺點 121
第9章 原型模式 122
9.1 原型模式概述 122
9.1.1 原型模式的定義 122
9.1.2 原型模式的套用場景 123
9.1.3 原型模式的UML類圖 124
9.1.4 原型模式的通用寫法 124
9.2 使用原型模式解決實際問題 126
9.2.1 分析JDK淺克隆API帶來的問題 126
9.2.2 使用序列化實現深克隆 129
9.2.3 還原克隆破壞單例的事故現場 131
9.3 原型模式在框架源碼中的套用 132
9.3.1 原型模式在JDK源碼中的套用 132
9.3.2 原型模式在Spring源碼中的套用 133
9.4 原型模式擴展 134
9.4.1 原型模式的優點 134
9.4.2 原型模式的缺點 134
第10章 建造者模式 135
10.1 建造者模式概述 135
10.1.1 建造者模式的定義 135
10.1.2 建造者模式的套用場景 136
10.1.3 建造者模式的UML類圖 136
10.1.4 建造者模式的通用寫法 137
10.2 使用建造者模式解決實際問題 138
10.2.1 建造者模式的鏈式寫法 138
10.2.2 使用靜態內部類實現建造者模式 140
10.2.3 使用建造者模式動態構建SQL語句 142
10.3 建造者模式在框架源碼中的套用 153
10.3.1 建造者模式在JDK源碼中的套用 153
10.3.2 建造者模式在MyBatis源碼中的套用 154
10.3.3 建造者模式在Spring源碼中的套用 154
10.4 建造者模式擴展 155
10.4.1 建造者模式與工廠模式的區別 155
10.4.2 建造者模式的優點 155
10.4.3 建造者模式的缺點 155
第3篇 結構型設計模式
第11章 代理模式 158
11.1 代理模式概述 158
11.1.1 代理模式的定義 158
11.1.2 代理模式的套用場景 158
11.1.3 代理模式的UML類圖 159
11.1.4 代理模式的通用寫法 159
11.2 使用代理模式解決實際問題 161
11.2.1 從靜態代理到動態代理 161
11.2.2 三層架構中的靜態代理 163
11.2.3 使用動態代理實現無感知切換數據源 168
11.2.4 手寫JDK動態代理核心原理 169
11.2.5 CGLib動態代理API原理分析 176
11.2.6 CGLib和JDK動態代理對比分析 183
11.3 代理模式在框架源碼中的套用 184
11.3.1 代理模式在Spring源碼中的套用 184
11.3.2 代理模式在MyBatis源碼中的套用 185
11.4 代理模式擴展 189
11.4.1 靜態代理和動態代理的區別 189
11.4.2 代理模式的優點 189
11.4.3 代理模式的缺點 190
第12章 門面模式 191
12.1 門面模式概述 191
12.1.1 門面模式的定義 191
12.1.2 門面模式的套用場景 191
12.1.3 門面模式的UML類圖 192
12.1.4 門面模式的通用寫法 193
12.2 使用門面模式整合已知API的功能 194
12.3 門面模式在框架源碼中的套用 196
12.3.1 門面模式在Spring源碼中的套用 196
12.3.2 門面模式在MyBatis源碼中的套用 198
12.3.3 門面模式在Tomcat源碼中的套用 199
12.4 門面模式擴展 200
12.4.1 門面模式的優點 200
12.4.2 門面模式的缺點 200
第13章 裝飾器模式 201
13.1 裝飾器模式概述 201
13.1.1 裝飾器模式的定義 201
13.1.2 裝飾器模式的套用場景 201
13.1.3 裝飾器模式的UML類圖 202
13.1.4 裝飾器模式的通用寫法 203
13.2 使用裝飾器模式解決實際問題 205
13.2.1 使用裝飾器模式解決煎餅“加碼”問題 205
13.2.2 使用裝飾器模式擴展日誌格式輸出 209
13.3 裝飾器模式在框架源碼中的套用 212
13.3.1 裝飾器模式在JDK源碼中的套用 212
13.3.2 裝飾器模式在Spring源碼中的套用 212
13.3.3 裝飾器模式在MyBatis源碼中的套用 213
13.4 裝飾器模式擴展 213
13.4.1 裝飾器模式與代理模式的區別 213
13.4.2 裝飾器模式的優點 214
13.4.3 裝飾器模式的缺點 214
第14章 享元模式 215
14.1 享元模式概述 215
14.1.1 享元模式的定義 215
14.1.2 享元模式的套用場景 216
14.1.3 享元模式的UML類圖 216
14.1.4 享元模式的通用寫法 217
14.2 使用享元模式解決實際問題 218
14.2.1 使用享元模式實現資源共享池 218
14.2.2 使用享元模式實現資料庫連線池 220
14.3 享元模式在框架源碼中的套用 222
14.3.1 享元模式在JDK源碼中的套用 222
14.3.2 享元模式在Apache Pool源碼中的套用 224
14.4 享元模式擴展 225
14.4.1 享元模式的內部狀態和外部狀態 225
14.4.2 享元模式的優點 226
14.4.3 享元模式的缺點 226
第15章 組合模式 227
15.1 組合模式概述 227
15.1.1 組合模式的定義 227
15.1.2 組合模式的套用場景 228
15.1.3 透明組合模式的UML類圖及通用寫法 229
15.1.4 安全組合模式的UML類圖及通用寫法 232
15.2 使用組合模式解決實際問題 233
15.2.1 使用透明組合模式實現課程目錄結構 233
15.2.2 使用安全組合模式實現無限級檔案系統 237
15.3 組合模式在框架源碼中的套用 240
15.3.1 組合模式在JDK源碼中的套用 240
15.3.2 組合模式在MyBatis源碼中的套用 243
15.4 組合模式擴展 244
15.4.1 組合模式的優點 244
15.4.2 組合模式的缺點 244
第16章 適配器模式 245
16.1 適配器模式概述 245
16.1.1 適配器模式的定義 245
16.1.2 適配器模式的套用場景 246
16.1.3 類適配器的UML類圖及通用寫法 246
16.1.4 對象適配器的UML類圖及通用寫法 248
16.1.5 接口適配器的UML類圖及通用寫法 249
16.2 使用適配器模式解決實際問題 251
16.2.1 使用類適配器重構第三方登錄自由適配 251
16.2.2 使用接口適配器最佳化代碼 254
16.3 適配器模式在SPRING源碼中的套用 258
16.4 適配器模式擴展 261
16.4.1 適配器模式與裝飾器模式的區別 261
16.4.2 適配器模式的優點 262
16.4.3 適配器模式的缺點 262
第17章 橋接模式 263
17.1 橋接模式概述 263
17.1.1 橋接模式的定義 263
17.1.2 橋接模式的套用場景 263
17.1.3 橋接模式的UML類圖 264
17.1.4 橋接模式的通用寫法 265
17.2 使用橋接模式設計複雜訊息系統 266
17.3 橋接模式在JDK源碼中的套用 270
17.4 橋接模式擴展 274
17.4.1 橋接模式的優點 274
17.4.2 橋接模式的缺點 274
第4篇 行為型設計模式
第18章 委派模式 276
18.1 委派模式概述 276
18.1.1 委派模式的定義 276
18.1.2 委派模式的套用場景 276
18.1.3 委派模式的UML類圖 277
18.1.4 委派模式的通用寫法 277
18.2 使用委派模式模擬任務分配場景 278
18.3 委派模式在框架源碼中的套用 280
18.3.1 委派模式在JDK源碼中的套用 280
18.3.2 委派模式在Spring源碼中的套用 282
18.4 委派模式擴展 285
18.4.1 委派模式的優點 285
18.4.2 委派模式的缺點 285
第19章 模板方法模式 286
19.1 模板方法模式概述 286
19.1.1 模板方法模式的定義 286
19.1.2 模板方法模式的套用場景 286
19.1.3 模板方法模式的UML類圖 287
19.1.4 模板方法模式的通用寫法 288
19.2 使用模板方法模式解決實際問題 289
19.2.1 模板方法模式中的鉤子方法 289
19.2.2 使用模板方法模式重構JDBC業務操作 291
19.3 模板方法模式在框架源碼中的套用 295
19.3.1 模板方法模式在JDK源碼中的套用 295
19.3.2 模板方法模式在MyBatis源碼中的套用 295
19.4 模板方法模式擴展 297
19.4.1 模板方法模式的優點 297
19.4.2 模板方法模式的缺點 297
第20章 策略模式 298
20.1 策略模式概述 298
20.1.1 策略模式的定義 298
20.1.2 策略模式的套用場景 298
20.1.3 策略模式的UML類圖 299
20.1.4 策略模式的通用寫法 300
20.2 使用策略模式解決實際問題 301
20.2.1 使用策略模式實現促銷優惠方案選擇 301
20.2.2 使用策略模式重構支付方式選擇場景 304
20.2.3 策略模式和委派模式結合使用 308
20.3 策略模式在框架源碼中的套用 311
20.3.1 策略模式在JDK源碼中的套用 311
20.3.2 策略模式在Spring源碼中的套用 312
20.4 策略模式擴展 314
20.4.1 策略模式的優點 314
20.4.2 策略模式的缺點 315
第21章 責任鏈模式 316
21.1 責任鏈模式概述 316
21.1.1 責任鏈模式的定義 316
21.1.2 責任鏈模式的套用場景 316
21.1.3 責任鏈模式的UML類圖 317
21.1.4 責任鏈模式的通用寫法 318
21.2 使用責任鏈模式解決實際問題 319
21.2.1 使用責任鏈模式設計熱插拔許可權控制 319
21.2.2 責任鏈模式和建造者模式結合使用 323
21.3 責任鏈模式在框架源碼中的套用 324
21.3.1 責任鏈模式在JDK源碼中的套用 324
21.3.2 責任鏈模式在Netty源碼中的套用 326
21.4 責任鏈模式擴展 328
21.4.1 責任鏈模式的優點 328
21.4.2 責任鏈模式的缺點 328
第22章 疊代器模式 329
22.1 疊代器模式概述 329
22.1.1 疊代器模式的定義 329
22.1.2 疊代器模式的套用場景 329
22.1.3 疊代器模式的UML類圖 330
22.1.4 疊代器模式的通用寫法 331
22.2 手寫自定義的集合疊代器 332
22.3 疊代器模式在框架源碼中的套用 336
22.3.1 疊代器模式在JDK源碼中的套用 336
22.3.2 疊代器模式在MyBatis源碼中的套用 338
22.4 疊代器模式擴展 338
22.4.1 疊代器模式的優點 338
22.4.2 疊代器模式的缺點 338
第23章 命令模式 339
23.1 命令模式概述 339
23.1.1 命令模式的定義 339
23.1.2 命令模式的套用場景 340
23.1.3 命令模式的UML類圖 340
23.1.4 命令模式的通用寫法 341
23.2 使用命令模式重構播放器控制條 342
23.3 命令模式在框架源碼中的套用 345
23.3.1 命令模式在JDK源碼中的套用 345
23.3.2 命令模式在JUnit源碼中的套用 346
23.4 命令模式擴展 346
23.4.1 命令模式的優點 346
23.4.2 命令模式的缺點 347
第24章 狀態模式 348
24.1 狀態模式概述 348
24.1.1 狀態模式的定義 348
24.1.2 狀態模式的套用場景 348
24.1.3 狀態模式的UML類圖 349
24.1.4 狀態模式的通用寫法 350
24.2 使用狀態模式解決實際問題 352
24.2.1 使用狀態模式實現登錄狀態自由切換 352
24.2.2 使用狀態機實現訂單狀態流轉控制 355
24.3 狀態模式在JSF源碼中的套用 361
24.4 狀態模式擴展 362
24.4.1 狀態模式與責任鏈模式的區別 362
24.4.2 狀態模式與策略模式的區別 362
24.4.3 狀態模式的優點 362
24.4.4 狀態模式的缺點 363
第25章 備忘錄模式 364
25.1 備忘錄模式概述 364
25.1.1 備忘錄模式的定義 364
25.1.2 備忘錄模式的套用場景 365
25.1.3 備忘錄模式的UML類圖 365
25.1.4 備忘錄模式的通用寫法 366
25.2 使用備忘錄模式實現草稿箱功能 368
25.3 備忘錄模式在SPRING源碼中的套用 373
25.4 備忘錄模式擴展 375
25.4.1 備忘錄模式的優點 375
25.4.2 備忘錄模式的缺點 375
第26章 中介者模式 376
26.1 中介者模式概述 376
26.1.1 中介者模式的定義 376
26.1.2 中介者模式的套用場景 377
26.1.3 中介者模式的UML類圖 378
26.1.4 中介者模式的通用寫法 379
26.2 使用中介者模式設計群聊場景 381
26.3 中介者模式在JDK源碼中的套用 382
26.4 中介者模式擴展 384
26.4.1 中介者模式的優點 384
26.4.2 中介者模式的缺點 384
第27章 解釋器模式 385
27.1 解釋器模式概述 385
27.1.1 解釋器模式的定義 385
27.1.2 解釋器模式的套用場景 386
27.1.3 解釋器模式的UML類圖 386
27.1.4 解釋器模式的通用寫法 387
27.2 使用解釋器模式解析數學表達式 389
27.3 解釋器模式在框架源碼中的套用 397
27.3.1 解釋器模式在JDK源碼中的套用 397
27.3.2 解釋器模式在Spring源碼中的套用 397
27.4 解釋器模式擴展 398
27.4.1 解釋器模式的優點 398
27.4.2 解釋器模式的缺點 399
第28章 觀察者模式 400
28.1 觀察者模式概述 400
28.1.1 觀察者模式的定義 400
28.1.2 觀察者模式的套用場景 400
28.1.3 觀察者模式的UML類圖 401
28.1.4 觀察者模式的通用寫法 402
28.2 使用觀察者模式解決實際問題 403
28.2.1 基於Java API實現通知機制 403
28.2.2 基於Guava API輕鬆落地觀察者模式 406
28.2.3 使用觀察者模式設計滑鼠事件回響API 406
28.3 觀察者模式在SPRING源碼中的套用 412
28.4 觀察者模式擴展 413
28.4.1 觀察者模式的優點 413
28.4.2 觀察者模式的缺點 414
第29章 訪問者模式 415
29.1 訪問者模式概述 415
29.1.1 訪問者模式的定義 415
29.1.2 訪問者模式的套用場景 416
29.1.3 訪問者模式的UML類圖 416
29.1.4 訪問者模式的通用寫法 417
29.2 使用訪問者模式解決實際問題 419
29.2.1 使用訪問者模式實現KPI考核的場景 419
29.2.2 從靜態分派到動態分派 424
29.2.3 訪問者模式中的偽動態分派 425
29.3 訪問者模式在框架源碼中的套用 427
29.3.1 訪問者模式在JDK源碼中的套用 427
29.3.2 訪問者模式在Spring源碼中的套用 428
29.4 訪問者模式擴展 429
29.4.1 訪問者模式的優點 429
29.4.2 訪問者模式的缺點 430
第5篇 設計模式總結篇
第30章 專治設計模式選擇困難症 432
30.1 設計模式到底如何落地 432
30.2 各種設計模式使用頻率總結 435
30.2.1 創建型設計模式 435
30.2.2 結構型設計模式 435
30.2.3 行為型設計模式 436
30.3 一句話歸納設計模式 437
第31章 容易混淆的設計模式對比 439
31.1 創建型設計模式對比 439
31.1.1 工廠方法模式與抽象工廠模式對比 439
31.1.2 簡單工廠模式與單例模式對比 440
31.1.3 簡單工廠模式與建造者模式對比 441
31.2 結構型設計模式對比 441
31.2.1 裝飾器模式與代理模式對比 441
31.2.2 裝飾器模式與門面模式對比 442
31.2.3 裝飾器模式與適配器模式對比 443
31.2.4 適配器模式與代理模式對比 443
31.3 行為型設計模式對比 444
31.3.1 策略模式與模板方法模式對比 444
31.3.2 策略模式與命令模式對比 445
31.3.3 策略模式與委派模式對比 445
31.3.4 橋接模式與適配器模式對比 446
31.3.5 橋接模式與組合模式對比 446
31.4 跨類綜合對比 447
31.4.1 享元模式與容器式單例模式對比 447
31.4.2 建造者模式與裝飾器模式對比 448
31.4.3 策略模式與簡單工廠模式對比 449
31.4.4 策略模式與適配器模式對比 449
31.4.5 中介者模式與適配器模式對比 450
31.4.6 中介者模式與代理模式對比 451
31.4.7 中介者模式與橋接模式對比 451
31.4.8 橋接模式與命令模式對比 452
31.4.9 委派模式與門面模式對比 453
31.4.10 委派模式與代理模式對比 453
第6篇 架構設計擴展篇
第32章 新設計模式 456
32.1 對象池模式 456
32.1.1 對象池模式的定義 456
32.1.2 對象池模式的套用場景 456
32.1.3 對象池模式的UML類圖 457
32.1.4 對象池模式的通用寫法 458
32.1.5 對象池模式的優缺點 459
32.2 規格模式 460
32.2.1 規格模式的定義 460
32.2.2 規格模式的套用場景 460
32.2.3 規格模式的UML類圖 460
32.2.4 規格模式的通用寫法 461
32.2.5 規格模式的優缺點 464
32.3 空對象模式 464
32.3.1 空對象模式的定義 464
32.3.2 空對象模式的套用場景 465
32.3.3 空對象模式的UML類圖 465
32.3.4 空對象模式的通用寫法 466
32.3.5 空對象模式的優缺點 467
32.4 僱工模式 467
32.4.1 僱工模式的定義 467
32.4.2 僱工模式的套用場景 467
32.4.3 僱工模式的UML類圖 468
32.4.4 僱工模式的通用寫法 468
32.4.5 僱工模式的優缺點 469
第33章 軟體架構與設計模式 470
33.1 軟體架構和設計模式的區別 470
33.2 三層架構 471
33.2.1 三層架構概述 471
33.2.2 三層架構的編程模型 471
33.2.3 三層架構的優缺點 472
33.3 ORM架構 473
33.3.1 ORM架構概述 473
33.3.2 ORM架構的編程模型 473
33.3.3 ORM架構的優缺點 474
33.4 MVC架構 474
33.4.1 MVC架構概述 474
33.4.2 MVC架構的編程模型 475
33.4.3 MVC架構的優缺點 476
33.5 RPC架構 477
33.5.1 RPC架構概述 477
33.5.2 RPC架構的編程模型 477
33.5.3 RPC架構的優缺點 478
33.6 未來軟體架構演進之路 478

相關詞條

熱門詞條

聯絡我們