《世界著名計(jì)算機(jī)教材精選:軟件架構(gòu)與模式》可供計(jì)算機(jī)專業(yè)學(xué)生、工科學(xué)者、系統(tǒng)開(kāi)發(fā)人員和大型系統(tǒng)的系統(tǒng)架構(gòu)設(shè)計(jì)人員閱讀。本書的目標(biāo)是讓讀者掌握系統(tǒng)架構(gòu)和模式的基本原理與實(shí)際應(yīng)用。
第1章 面向?qū)ο笤O(shè)計(jì)的原理 1
1.1 程序的可讀性、正確性和
可擴(kuò)展性 2
1.1.1 可讀性 2
1.1.2 正確性 2
1.1.3 可擴(kuò)展性 3
1.2 封裝、抽象和信息隱藏 3
1.3 關(guān)注點(diǎn)分離和單一職責(zé)
原則 4
1.4 接口隔離原則 6
1.5 松耦合 6
1.6 里氏代換原則 7
1.7 契約式設(shè)計(jì) 9
1.7.1 斷言 9
1.7.2 覆寫要遵守契約 11
1.8 開(kāi)閉原則 13
1.9 依賴倒置原則和控制反轉(zhuǎn) 18
1.9.1 依賴倒置原則 18
1.9.2 控制反轉(zhuǎn) 19
1.10 對(duì)象生成過(guò)程中減少
?依賴性 21
?1.10.1 依賴查找 22
?1.10.2 依賴注入 26
1.11 總結(jié) 28
1.12 練習(xí) 29
第2章 軟件架構(gòu) 30
2.1 軟件架構(gòu)概念 31
2.2 軟件架構(gòu)的質(zhì)量 32
2.3 參考架構(gòu)、架構(gòu)模式和設(shè)計(jì)
模式 33
2.4 軟件架構(gòu)概念的任務(wù)和前景 34
2.4.1 系統(tǒng)中的分析任務(wù) 34
2.4.2 系統(tǒng)中的結(jié)構(gòu)設(shè)計(jì)
任務(wù) 35
2.4.3 觀察軟件架構(gòu)的
角度 37
2.4.4 軟件架構(gòu)的原型 37
2.5 軟件架構(gòu)師對(duì)一個(gè)項(xiàng)目的
意義 37
2.5.1 軟件架構(gòu)師的技術(shù)
能力 38
2.5.2 軟件架構(gòu)師的溝通
能力 38
2.5.3 構(gòu)造軟件架構(gòu)過(guò)程中
的決定 39
2.6 總結(jié) 40
2.7 練習(xí) 41
第3章 軟件設(shè)計(jì)的模式 42
3.1 模式的使用 43
3.2 模式的屬性和它的設(shè)計(jì) 44
3.3 架構(gòu)模式、設(shè)計(jì)模式和慣用
法的界限 44
3.4 描述設(shè)計(jì)模式和架構(gòu)模式的
模板 46
3.5 總結(jié) 47
3.6 練習(xí) 47
第4章 面向?qū)ο笤O(shè)計(jì)模式 48
4.1 設(shè)計(jì)模式的分類 48
4.2 設(shè)計(jì)模式的概述 49
4.2.1 結(jié)構(gòu)模式 49
4.2.2 行為模式 50
4.2.3 創(chuàng)建型模式 51
4.2.4 設(shè)計(jì)模式指南 51
4.3 結(jié)構(gòu)模式中的適配器模式 51
4.3.1 名稱/其他可用的
名稱 51
4.3.2 問(wèn)題 51
4.3.3 解決方法 52
4.3.4 評(píng)價(jià) 57
4.3.5 使用范圍 58
4.3.6 類似的模式 58
4.4 結(jié)構(gòu)模式中的橋梁模式 58
4.4.1 名稱/其他可用的
名稱 58
4.4.2 問(wèn)題 58
4.4.3 解決方法 59
4.4.4 評(píng)價(jià) 66
4.4.5 使用范圍 67
4.4.6 類似的模式 67
4.5 結(jié)構(gòu)模式中的裝飾模式 67
4.5.1 名稱/其他可用的
名稱 67
4.5.2 問(wèn)題 67
4.5.3 解決方法 68
4.5.4 評(píng)價(jià) 76
4.5.5 使用范圍 77
4.5.6 類似的模式 80
4.6 結(jié)構(gòu)模式中的外觀模式 81
4.6.1 名稱/其他可用的
名稱 81
4.6.2 問(wèn)題 81
4.6.3 解決方法 81
4.6.4 評(píng)價(jià) 86
4.6.5 使用范圍 86
4.6.6 類似的模式 86
4.7 結(jié)構(gòu)模式中的組合模式 87
4.7.1 名稱/其他可用的
名稱 87
4.7.2 問(wèn)題 87
4.7.3 解決方法 87
4.7.4 評(píng)價(jià) 95
4.7.5 使用范圍 95
4.7.6 類似的模型 97
4.8 結(jié)構(gòu)模式中的代理模式 97
4.8.1 名稱/其他可用的
名稱 97
4.8.2 問(wèn)題 98
4.8.3 解決方法 98
4.8.4 評(píng)價(jià) 102
4.8.5 使用范圍 102
4.8.6 類似的模式 103
4.9 行為模式中的模板方法
模式 104
4.9.1 名稱/其他可用的
名稱 104
4.9.2 問(wèn)題 104
4.9.3 解決方法 104
4.9.4 使用范圍 108
4.9.5 評(píng)價(jià) 109
4.9.6 類似的模式 109
4.10 行為模式中的命令模式 109
4.10.1 名稱/其他可用的
?名稱 109
4.10.2 問(wèn)題 109
4.10.3 解決方法 110
4.10.4 評(píng)價(jià) 115
4.10.5 使用范圍 116
4.10.6 類似的模式 116
4.11 行為模式中的觀察者模式 117
4.11.1 名稱/其他可用的
?名稱 117
4.11.2 問(wèn)題 117
4.11.3 解決方法 117
4.11.4 評(píng)價(jià) 124
4.11.5 使用范圍 124
4.11.6 類似的模式 125
4.12 行為模式中的策略模式 125
4.12.1 名稱/其他可用的
??名稱 125
4.12.2 問(wèn)題 125
4.12.3 解決方法 125
4.12.4 使用范圍 129
4.12.5 評(píng)價(jià) 129
4.12.6 類似的模式 130
4.13 行為模式中的中間者
?模式 130
4.13.1 名稱/其他可用的
??名稱 130
4.13.2 問(wèn)題 131
4.13.3 解決方法 131
4.13.4 評(píng)價(jià) 138
4.13.5 使用范圍 138
4.13.6 類似的模式 138
4.14 行為模式中的狀態(tài)模式 139
4.14.1 名稱/其他可用的
??名稱 139
4.14.2 問(wèn)題 139
4.14.3 解決方法 139
4.14.4 使用范圍 146
4.14.5 評(píng)價(jià) 146
4.14.6 類似的模式 146
4.15 行為模式中的角色模式 147
4.15.1 名稱/其他可用的
??名稱 147
4.15.2 問(wèn)題 147
4.15.3 解決方法 148
4.15.4 評(píng)價(jià) 155
4.15.5 使用范圍 155
4.15.6 類似的模式 156
4.16 行為模式中的拜訪者模式 156
4.16.1 名稱/其他可用的
??名稱 156
4.16.2 問(wèn)題 156
4.16.3 解決方法 156
4.16.4 評(píng)價(jià) 169
4.16.5 使用范圍 170
4.16.6 類似的模式 171
4.17 行為模式中的迭代器模式 171
4.17.1 名稱/其他可用的
??名稱 171
4.17.2 問(wèn)題 171
4.17.3 解決方法 171
4.17.4 評(píng)價(jià) 178
4.17.5 使用范圍 178
4.17.6 類似的模式 180
4.18 創(chuàng)建型模式中的工廠
??方法 180
4.18.1 名稱/其他可用的
??名稱 180
4.18.2 問(wèn)題 180
4.18.3 解決方法 181
4.18.4 評(píng)價(jià) 185
4.18.5 使用范圍 185
4.18.6 類似的模式 186
4.19 創(chuàng)建型模式中的抽象工廠
??模式 186
4.19.1 名稱/其他可用的
??名稱 186
4.19.2 問(wèn)題 186
4.19.3 解決方法 186
4.19.4 評(píng)價(jià) 195
4.19.5 使用范圍 195
4.19.6 類似的模式 196
4.20 創(chuàng)建型模式中的單例模式 196
4.20.1 名稱/其他可用的
??名稱 196
4.20.2 問(wèn)題 196
4.20.3 解決方法 196
4.20.4 評(píng)價(jià) 204
4.20.5 使用范圍 204
4.20.6 類似的模式 204
4.21 創(chuàng)建型模式中的對(duì)象池
??模式 204
4.21.1 名稱/其他可用的
??名稱 204
4.21.2 問(wèn)題 205
4.21.3 解決方法 205
4.21.4 評(píng)價(jià) 210
4.21.5 使用范圍 211
4.21.6 類似的模式 211
4.22 總結(jié) 211
4.23 練習(xí) 213
第5章 架構(gòu)模式 216
5.1 分層架構(gòu)模式 217
5.1.1 名稱/其他可用的
名稱 217
5.1.2 問(wèn)題 217
5.1.3 解決方法 217
5.1.4 評(píng)價(jià) 219
5.1.5 使用范圍 220
5.1.6 類似的模式 226
5.2 管道和過(guò)濾器架構(gòu)模式 226
5.2.1 名稱/其他可用的
名稱 226
5.2.2 問(wèn)題 226
5.2.3 解決方法 227
5.2.4 評(píng)價(jià) 232
5.2.5 使用范圍 232
5.2.6 類似的模式 234
5.3 插件架構(gòu)模式 235
5.4 中介模式 245
5.5 面向服務(wù)的架構(gòu)模式 267
5.6 模型-視圖-控制器架構(gòu)模式 291
5.7 總結(jié) 307
5.8 練習(xí) 308
參考文獻(xiàn) 310