第1章 學習基礎 1
1.1 軟件工程簡介 1
1.1.1 軟件生命周期 2
1.1.2 軟件開發(fā)方法 3
1.2 理解面向對象 5
1.2.1 面向對象的特征 5
1.2.2 使用面向對象 7
1.3 UML的使用 8
1.3.1 UML的概念 8
1.3.2 使用用例圖 9
1.3.3 使用時序圖 10
1.3.4 使用類圖 12
1.4 總結 14
1.5 習題 15
第2章 面向對象程序設計原則 16
2.1 單一職責原則 16
2.2 開放/閉合原則 18
2.3 接口隔離原則 20
2.4 依賴倒置原則 22
2.5 Liskov替換原則 25
2.6 總結 28
2.7 習題 28
第3章 設計模式入門 30
3.1 設計模式的概念 30
3.1.1 設計模式的定義 30
3.1.2 使用設計模式 31
3.2 GRASP設計模式 37
3.2.1 創(chuàng)建者模式 37
3.2.2 信息專家模式 39
3.2.3 控制器模式 40
3.3 簡單工廠模式 43
3.4 總結 45
3.5 習題 45
第4章 GoF創(chuàng)建型模式 47
4.1 單例模式 47
4.1.1 模式定義 47
4.1.2 使用單例 48
4.1.3 行業(yè)案例 49
4.2 原型模式 50
4.2.1 模式定義 50
4.2.2 使用原型 51
4.2.3 行業(yè)案例 55
4.3 構造器模式 56
4.3.1 模式定義 56
4.3.2 使用構造器 58
4.3.3 行業(yè)案例 61
4.4 抽象工廠模式 63
4.4.1 模式定義 63
4.4.2 使用抽象工廠 64
4.4.3 行業(yè)案例 67
4.5 工廠方法模式 69
4.5.1 模式定義 69
4.5.2 使用工廠方法 70
4.5.3 行業(yè)案例 73
4.6 總結 75
4.7 習題 76
第5章 GoF結構型模式 78
5.1 適配器模式 78
5.1.1 模式定義 78
5.1.2 使用適配器 80
5.1.3 行業(yè)案例 83
5.2 橋模式 87
5.2.1 模式定義 87
5.2.2 使用橋 89
5.2.3 行業(yè)案例 92
5.3 組合模式 95
5.3.1 模式定義 95
5.3.2 使用組合 96
5.3.3 行業(yè)案例 98
5.4 裝飾器模式 102
5.4.1 模式定義 102
5.4.2 使用裝飾器 103
5.4.3 行業(yè)案例 107
5.5 門面模式 111
5.5.1 模式定義 111
5.5.2 使用門面 113
5.5.3 行業(yè)案例 115
5.6 享元模式 118
5.6.1 模式定義 118
5.6.2 使用享元 120
5.6.3 行業(yè)案例 123
5.7 代理模式 128
5.7.1 模式定義 128
5.7.2 使用代理 130
5.7.3 行業(yè)案例 132
5.8 總結 135
5.9 習題 136
第6章 GoF行為型模式 138
6.1 責任鏈模式 138
6.1.1 模式定義 138
6.1.2 使用責任鏈 140
6.1.3 行業(yè)案例 143
6.2 命令模式 146
6.2.1 模式定義 146
6.2.2 使用命令 148
6.2.3 行業(yè)案例 152
6.3 解釋器模式 155
6.3.1 模式定義 155
6.3.2 使用解釋器 157
6.3.3 行業(yè)案例 160
6.4 迭代器模式 166
6.4.1 模式定義 166
6.4.2 使用迭代器 168
6.4.3 行業(yè)案例 172
6.5 仲裁者模式 175
6.5.1 模式定義 175
6.5.2 使用仲裁者 178
6.5.3 行業(yè)案例 180
6.6 備忘錄模式 184
6.6.1 模式定義 184
6.6.2 使用備忘錄 185
6.6.3 行業(yè)案例 188
6.7 觀察者模式 195
6.7.1 模式定義 195
6.7.2 使用觀察者 196
6.7.3 行業(yè)案例 199
6.8 狀態(tài)模式 204
6.8.1 模式定義 204
6.8.2 使用狀態(tài) 206
6.8.3 行業(yè)案例 208
6.9 策略模式 215
6.9.1 模式定義 215
6.9.2 使用策略 216
6.9.3 行業(yè)案例 219
6.10 模板方法模式 225
6.10.1 模式定義 225
6.10.2 使用模板方法 227
6.10.3 行業(yè)案例 229
6.11 訪問者模式 234
6.11.1 模式定義 234
6.11.2 使用訪問者 236
6.11.3 行業(yè)案例 240
6.12 總結 244
6.13 習題 246
附 錄 COS需求 248
1 引言 248
1.1 系統(tǒng)背景 248
1.2 用戶 248
1.3 假設和相關性 248
2 COS功能需求 249
2.1 點餐 249
2.2 套餐預訂 250
2.3 注冊支付信息 251
2.4 請求配送 251
2.5 創(chuàng)建、查看、修改、刪除食堂菜單和菜品 252
3 數據需求 253
4 接口需求 253
4.1 用戶接口 253
4.2 硬件接口 253
4.3 軟件接口 253
4.4 通信接口 254
5 非功能性需求 254
5.1 性能需求 254
5.2 安全需求 254
5.3 軟件質量屬性 254
5.4 國際化 254
參考文獻 255