目 錄
第1部分 面向對象基礎 1
第1章 面向對象概述 3
1.1 程序設計思想的發(fā)展 3
1.2 面向對象語言的發(fā)展歷史 6
1.3 面向過程 8
1.4 面向對象 9
1.5 為什么要面向對象 11
1.6 面向對象的應用范圍 12
1.7 面向對象的迷思 13
1.7.1 面向對象會導致性能降低? 13
1.7.2 面向對象語言=面向對象編程? 14
1.8 小結 16
第2章 面向對象理論 17
2.1 類 17
2.2 對象 23
2.3 接口 26
2.4 抽象類 31
2.5 抽象 32
2.6 三大核心特征 34
2.6.1 封裝 34
2.6.2 繼承 44
2.6.3 多態(tài) 46
2.7 小結 50
第2部分 面向對象實戰(zhàn) 53
第3章 面向對象分析和設計全流程概述 55
第4章 需求模型 57
4.1 需求詳解 57
4.2 需求的重要性 59
4.3 需求分析 60
4.3.1 需求分析的目的 60
4.3.2 需求分析的方法 63
4.4 用例方法 69
4.4.1 用例的具體寫法 70
4.4.2 要畫圖嗎 74
4.5 功能 75
4.6 用例圖的陷阱 78
4.7 SSD 79
4.8 FAQ 81
4.9 小結 82
第5章 領域模型 84
5.1 領域建模三字經 84
5.2 找名詞 85
5.3 加屬性 87
5.4 連關系 88
5.5 FAQ 89
5.6 小結 90
第6章 設計模型 91
6.1 設計模型總覽 91
6.2 類模型 92
6.2.1 第一步(照貓畫虎):領域類映射 93
6.2.2 第二步(精雕細琢):應用設計原則和設計模式 101
6.2.3 第三步(照本宣科):拆分輔助類 105
6.3 動態(tài)模型 106
6.3.1 模型分類 106
6.3.2 建模實踐 108
6.3.3 建模技巧 110
6.4 小結 111
第7章 實現模型 112
7.1 編程語言的差異性 112
7.2 C++ 113
7.2.1 類 113
7.2.2 訪問控制 114
7.2.3 繼承 117
7.2.4 多態(tài) 126
7.2.5 抽象類 130
7.2.6 接口 135
7.3 Java 136
7.3.1 類 137
7.3.2 訪問控制 138
7.3.3 繼承 142
7.3.4 多態(tài) 144
7.3.5 抽象類 146
7.3.6 接口 150
7.4 小結 152
第3部分 面向對象技巧 153
第8章 設計原則 155
8.1 內聚 155
8.1.1 內聚究竟是什么 155
8.1.2 內聚的分類 157
8.2 耦合 168
8.2.1 耦合究竟是什么 168
8.2.2 耦合的分類 169
8.3 高內聚低耦合 180
8.4 類設計原則 188
8.4.1 SRP 188
8.4.2 OCP 191
8.4.3 LSP 193
8.4.4 ISP 197
8.4.5 DIP 202
8.4.6 如何應用設計原則 209
8.4.7 NOP 210
8.5 小結 211
第9章 設計模式 212
9.1 設計模式簡介 212
9.2 設計模式只是一把錘子 213
9.3 設計模式之道 214
9.3.1 知易行難——設計模式應用的問題 214
9.3.2 撥云見日——尋找設計模式之道 215
9.3.3 庖丁解牛——解析設計模式之道 217
9.3.4 舉一反三——活學活用設計模式之道 218
9.4 原則VS模式 219
9.5 模式詳解 225
9.5.1 Prototype模式 226
9.5.2 Decorator模式 238
9.5.3 Facade模式 250
9.5.4 Observer模式 264
9.6 小結 274
第10章 UML 275
10.1 UML簡介 275
10.2 UML只是語言 275
10.3 UML應用 277
10.4 需求分析階段 278
10.4.1 用例圖 278
10.4.2 用例圖的關系 281
10.5 設計階段 284
10.5.1 類圖 284
10.5.2 類關系圖 288
10.5.3 動態(tài)圖 305
10.5.4 結構圖 318
10.6 部署階段 320
10.7 小結 322
第4部分 面向對象架構設計 325
第11章 面向對象架構設計基礎 327
11.1 什么是架構 327
11.2 面向對象的架構設計 329
11.3 小結 330
第12章 面向對象架構設計流程 332
12.1 架構設計總體思想 332
12.2 業(yè)務架構 333
12.2.1 全新的業(yè)務系統 333
12.2.2 已有架構優(yōu)化 335
12.2.3 業(yè)務架構實例:京西商城 336
12.3 領域架構 337
12.4 軟件架構 338
12.4.1 第一步:照貓畫虎 338
12.4.2 第二步:按圖索驥 340
12.4.3 第三步:深思熟慮 342
12.5 小結 344
第13章 面向對象架構設計技巧 345
13.1 架構設計原則 345
13.1.1 客戶需求優(yōu)先原則 345
13.1.2 適當超前原則 347
13.2 架構設計屠龍刀 350
13.2.1 “拆”與“合” 350
13.2.2 “拆”的常見手段 352
13.2.3 “合”的常見手段 362
13.3 優(yōu)秀架構師特質:創(chuàng)新 366
13.4 小結 367