面向對象與設計模式

《面向對象與設計模式》是2013年清華大學出版社出版的圖書,作者是耿祥義、張躍平。

圖書簡介

本書是面向有一定Java語言基礎和一定編程經驗的讀者,重點介紹了面向對象的核心內容以及作者在面向對象研究中的一些新思想,全面探討在Java程式設計中怎樣使用一些重要的設計模式。作者編寫本書的目的是讓讀者不僅學習怎樣在軟體設計中使用好設計模式,更重要的是讓讀者通過學習使用設計模式深刻地理解面向對象的設計思想,以便更好地使用面向對象語言解決設計中的諸多問題。

圖書目錄

第1章 面向對象入門 1

1.1 程式語言的幾個發展階段 1

1.1.1 面向機器語言 1

1.1.2 面向過程語言 1

1.1.3 面向對象語言 2

1.1.4 使用Java的必要性 3

1.2 從抽象到類 3

1.3 類與程式的基本結構 5

1.4 使用的開發工具 6

第2章 封裝 7

2.1 從類的角度看封裝性 7

2.1.1 封裝數據及操作 7

2.1.2 類的UML圖 8

2.2 從對象的角度看封裝性 9

2.2.1 創建對象所體現的封裝性 9

2.2.2 對象訪問變數和調用方法所體現的封裝性 11

2.2.3 實例變數和類變數體現的封裝性 12

2.2.4 關於實例方法和類方法 13

2.3 從使用者角度看封裝性 14

2.4 有理數的類封裝 15

2.4.1 Rational類 15

2.4.2 用Rational對象做運算 18

2.5 從訪問許可權看封裝性 19

2.5.1 訪問限制修飾符 19

2.5.2 加強封裝性 21

2.6 包與類的封裝 22

2.6.1 包封裝 22

2.6.2 引入類庫中的類 24

2.6.3 引入自定義包中的類 24

第3章 繼承、接口與多態 26

3.1 子類與父類 26

3.2 子類的繼承性 27

3.3 關於protected的進一步說明 27

3.4 子類對象的特點 28

3.5 隱藏繼承的成員 29

3.6 通過重寫實現多態 30

3.7 上轉型對象體現多態 31

3.8 通過final禁止多態 33

3.9 通過super解決多態帶來的問題 33

3.10 接口 34

3.11 接口回調體現的多態 36

3.12 重載體現的多態 38

第4章 組合 41

4.1 引用的重要作用 41

4.2 對象的組合 44

4.3 組合關係和依賴關係 46

4.4 組合關係是弱耦合關係 47

4.5 基於組合的流水線 48

4.6 汽車動態更換駕駛員 50

第5章 面向對象的幾個基本原則 53

5.1 抽象類與接口 53

5.1.1 抽象類 53

5.1.2 接口 54

5.2 面向抽象原則 55

5.3 “開-閉”原則 57

5.3.1 什麼是“開-閉”原則 57

5.3.2 標準、標準構件和面向標準的產品 58

5.4 “多用組合,少用繼承”原則 61

5.4.1 繼承與復用 61

5.4.2 組合與復用 62

5.4.3 多用組合,少用繼承 62

5.5 “高內聚-弱耦合”原則 63

第6章 設計模式簡介 64

6.1 什麼是設計模式 64

6.2 設計模式的起源 65

6.3 GOF之著作 65

6.4 學習設計模式的重要性 65

6.5 合理使用模式 66

6.6 什麼是框架 67

6.7 模式分類 68

6.8 設計模式資源 69

第7章 策略模式 70

7.1 策略模式的結構與使用 70

7.1.1 策略模式的結構 70

7.1.2 策略模式的使用 74

7.2 策略模式的優點 75

7.3 適合使用策略模式的情景 75

7.4 策略模式相對繼承機制的優勢 76

7.5 舉例——加密、解密檔案 76

7.5.1 設計要求 76

7.5.2 設計實現 76

第8章 狀態模式 82

8.1 狀態模式的結構與使用 82

8.1.1 狀態模式的結構 82

8.1.2 狀態模式的使用 85

8.2 狀態切換 86

8.3 狀態模式的優點 89

8.4 適合使用狀態模式的情景 89

8.5 舉例——模擬咖啡自動售貨機 89

8.5.1 設計要求 89

8.5.2 設計實現 90

第9章 命令模式 93

9.1 命令模式的結構與使用 93

9.1.1 命令模式的結構 93

9.1.2 命令模式的使用 97

9.2 命令接口中的撤銷方法 98

9.3 命令模式的優點 101

9.4 適合使用命令模式的情景 101

9.5 舉例——控制電燈 101

9.5.1 設計要求 101

9.5.2 設計實現 101

第10章 中介者模式 105

10.1 中介者模式的結構與使用 105

10.1.1 中介者模式的結構 105

10.1.2 中介者模式的使用 108

10.2 中介者模式的優點 110

10.3 適合使用中介者模式的情景 110

10.4 舉例——組件互動 110

10.4.1 設計要求 110

10.4.2 設計實現 111

第11章 責任鏈模式 114

11.1 責任鏈模式的結構與使用 114

11.1.1 責任鏈模式的結構 114

11.1.2 責任鏈模式的使用 118

11.2 責任鏈模式的優點 118

11.3 適合使用責任鏈模式的情景 119

11.4 舉例——計算階乘 119

11.4.1 設計要求 119

11.4.2 設計實現 119

第12章 模板方法模式 123

12.1 模板方法模式的結構與使用 123

12.1.1 模板方法模式的結構 123

12.1.2 模板方法模式的使用 126

12.2 鉤子方法 127

12.3 模板方法模式的優點 130

12.4 適合使用模板方法模式的情景 130

12.5 舉例——考試與成績錄入 130

12.5.1 設計要求 130

12.5.2 設計實現 131

第13章 觀察者模式 135

13.1 觀察者模式的結構與使用 135

13.1.1 觀察者模式的結構 135

13.1.2 觀察者模式的使用 140

13.2 觀察者模式中的“推”數據與“拉”數據 141

13.3 觀察者模式的優點 144

13.4 適合使用觀察者模式的情景 145

13.5 舉例——關注天氣和旅遊信息 145

13.5.1 設計要求 145

13.5.2 設計實現 145

第13章觀察者模式 135

13.1觀察者模式的結構與使用 135

13.1.1觀察者模式的結構 135

13.1.2觀察者模式的使用 140

13.2觀察者模式中的“推”數據與“拉”數據 141

13.3觀察者模式的優點 144

13.4適合使用觀察者模式的情景 145

13.5舉例——關注天氣和旅遊信息 145

13.5.1設計要求 145

13.5.2設計實現 145

第14章訪問者模式 150

14.1訪問者模式的結構與使用 150

14.1.1訪問者模式的結構 150

14.1.2訪問者模式的使用 153

14.2雙重分派 154

14.3訪問者模式的優點 154

14.4適合使用訪問模式的情景 155

14.5舉例——評價體檢表 155

14.5.1設計要求 155

14.5.2設計實現 155

第15章裝飾模式 160

15.1裝飾模式的結構與使用 160

15.1.1裝飾模式的結構 160

15.1.2裝飾模式的使用 163

15.2使用多個裝飾者 164

15.3裝飾模式相對繼承機制的優勢 165

15.4裝飾模式的優點 166

15.5適合使用裝飾模式的情景 166

15.6舉例——讀取單詞表 166

15.6.1設計要求 166

15.6.2設計實現 167

第16章組合模式 171

16.1組合模式的結構與使用 171

16.1.1組合模式的結構 171

16.1.2組合模式的使用 174

16.2組合模式的優點 176

16.3適合使用組合模式的情景 176

16.4舉例——蘋果樹的重量及蘋果的價值 176

16.4.1設計要求 176

16.4.2設計實現 177

第17章適配器模式 180

17.1適配器模式的結構與使用 180

17.1.1適配器模式的結構 180

17.1.2適配器模式的使用 182

17.1.3適配器的適配程度 183

17.2適配器模式的優點 184

17.3適合使用適配器模式的情景 184

17.4單接口適配器 184

17.5舉例——Iterator接口與Enumeration接口 185

17.5.1設計要求 185

17.5.2設計實現 185

第18章外觀模式 188

18.1外觀模式的結構與使用 188

18.1.1外觀模式的結構 188

18.1.2外觀模式的使用 190

18.2外觀模式的優點 191

18.3適合使用外觀模式的情景 191

18.4舉例——解析檔案 191

18.4.1設計要求 191

18.4.2設計實現 192

第19章代理模式 195

19.1代理模式的結構與使用 195

19.1.1代理模式的結構 195

19.1.2代理模式的使用 197

19.2遠程代理 198

19.2.1RMI與代理模式 198

19.2.2RMI的設計細節 199

19.3代理模式的優點 203

19.4適合使用代理模式的情景 203

19.5舉例——使用遠程視窗閱讀檔案 203

19.5.1設計要求 203

19.5.2設計實現 203

第20章享元模式 207

20.1享元模式的結構與使用 207

20.1.1享元模式的結構 207

20.1.2享元模式的使用 212

20.2享元模式的優點 213

20.3適合使用享元模式的情景 213

20.4舉例——化合物 213

20.4.1設計要求 213

20.4.2設計實現 214

第21章橋接模式 218

21.1橋接模式的結構與使用 218

21.1.1橋接模式的結構 218

21.1.2橋接模式的使用 221

21.2橋接模式的優點 222

21.3適合使用橋接模式的情景 222

21.4舉例——模擬電視節目 222

21.4.1設計要求 222

21.4.2設計實現 222

第22章工廠方法模式 226

22.1工廠方法模式的結構與使用 226

22.1.1工廠方法模式的結構 226

22.1.2工廠方法模式的使用 229

22.2工廠方法模式的優點 230

22.3適合使用工廠方法模式的情景 231

22.4舉例——藥品 231

22.4.1設計要求 231

22.4.2設計實現 231

第23章抽象工廠模式 235

23.1抽象工廠模式的結構與使用 235

23.1.1抽象工廠模式的結構 235

23.1.2抽象工廠模式的使用 240

23.2工廠方法模式的優點 241

23.3適合使用抽象工廠模式的情景 242

23.4舉例——商店與西服、牛仔服 242

23.4.1設計要求 242

23.4.2設計實現 242

23.4.3模式的使用 245

第24章生成器模式 247

24.1生成器模式的結構與使用 247

24.1.1生成器模式的結構 247

24.1.2生成器模式的使用 250

24.2生成器模式的優點 251

24.3適合使用生成器模式的情景 252

24.4舉例——日曆牌 252

24.4.1設計要求 252

24.4.2設計實現 252

第25章原型模式 259

25.3原型模式的結構與使用 263

25.3.1原型模式的結構 263

25.3.2原型模式的使用 265

25.4原型模式的優點 266

25.5適合使用原型模式的情景 266

25.6舉例——克隆容器 267

25.6.1設計要求 267

25.6.2設計實現 267

第26章單件模式 270

26.1單件模式的結構與使用 270

26.1.1單件模式的結構 270

26.1.2單件模式的使用 272

26.2單件模式的優點 273

26.3適合使用單件模式的情景 273

26.4舉例——冠軍 273

26.4.1設計要求 273

26.4.2設計實現 273

參考文獻 278

相關詞條

熱門詞條

聯絡我們