軟件設計模式實用教程
-
【作 者】主編 車戰斌
【I S B N 】978-7-5170-7230-0
【責任編輯】張玉玲
【適用讀者群】本專通用
【出版時間】2019-03-20
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】272
【千字數】422
【印 張】17
【定 價】¥48
【叢 書】普通高等教育“十三五”規劃教材(軟件工程專業)
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
軟件設計模式是軟件工程前人經驗的積累與總結,它為構建易維護和便復用的軟件而誕生。本書結合大量的應用實例分析和講解每一個常用的設計模式,貼近生活,力求通俗易懂,并且在真實項目實例的引導下學會合理運用設計模式。
本書分為3個部分,共6章內容:第1部分(第1章、第2章)為基礎知識,包括UML類圖講解和設計原則等;第2部分(第3章、第4章、第5章)為設計模式講解,包括6種常用的創建型設計模式、7種常用的結構型設計模式和10種常用的行為型設計模式;第3部分(第6章)為綜合案例,使用多種模式混合解決實際應用問題。
本書適合作為高等學校計算機專業的軟件開發課程教材,也可作為一線開發人員、高等院校計算機及軟件等相關專業師生、IT培訓機構講師和學員、業余軟件開發人員、設計模式研究人員以及愛好者的參考用書。
選取熟悉的業務場景完成每個模式的引題。
整本教材以實際開發應用貫穿關鍵知識點。
具有大量多種形式的課后習題。
什么是軟件設計?如何進行軟件設計?依據設計類圖如何寫代碼?怎么使用設計模式?……
這是很多開發人員或者設計人員曾有過的感慨,尤其是初級設計人員或初識設計模式人員。
目前市面也有不少關于設計模式的書籍,有的主要是針對重點院校,完全是理論講解并且針對每個模式講解的篇幅相對偏少;有些教材易懂,作為入門教材比較好,但多數是翻譯版,不能完全忠實于原文,并且文中詳細講解的模式數量相對少,沒有針對性的課后習題;還有一些書籍,作為入門參考教材挺好,但其中的引題基本上都是生活中的例子,這樣不符合軟件設計思維,并且也沒有針對性練習題。上述教材對于以培養應用型軟件工程人才為目標的高等院校,不能很好地滿足課程目標。為了解決只會編寫代碼,而不知道規范且想快速上手設計的初學者來說,本書可以為你答疑解惑。
本書以隨手拈來的生活實例為最好的設計(Java代碼引題),結合項目實例講解設計模式,講解如何通過模式來解決上述生活問題,讓讀者能夠快速提升自己的開發和設計能力,真正地理解和掌握每一個設計模式。
本書的組織
本書分為3個部分,主要講授面向對象設計中使用的UML相關知識及設計原則,隨后對設計模式進行總體的介紹,然后從創建型、結構型、行為型三種分類下常用的設計模式進行深入淺出地講解,最后以2個綜合案例講解混合模式的使用。
第1部分是基礎知識,包括第1章、第2章,由車戰斌、李勇軍執筆。該部分主要是進行UML中常用類圖及設計原則的詳細講解。
第2部分是設計模式,包括第3章、第4章、第5章,其中第3章創建型模式由高亮執筆,第4章結構型模式由李勇軍執筆,第5章行為型模式,由余雨萍、郭麗執筆。該部分主要是講解常用的設計模式。
第2部分對于每個模式的講解,力求通俗易懂,真實場景應用,每個模式講解的基本結構如下:
第3部分是綜合案例(第6章),由高亮、郭麗執筆。該部分主要是講解使用多種模式來解決問題的方法。
本書特點
(1)選取熟悉的業務場景完成每個模式的引題;
(2)整本教材以實際開發應用貫穿關鍵知識點;
(3)具有大量多種形式的課后習題。
本書風格
語句及案例接“地氣”,通俗易懂,以常見案例的Java代碼作為引題,隨后介紹相關模式的知識,最后以類似案例進行分析講解,并配以大量多種形式的習題。
本書由車戰斌教授主編并統稿,李勇軍、高亮任副主編,參與編寫的還有余雨萍、郭麗。在本書編寫過程中,本書編者進行了多次規劃、組稿和方案討論工作,并提出了許多建設性意見,在此一并表示感謝。
由于編者水平有限,書中錯誤或不妥之處在所難免,懇請廣大讀者批評指正,歡迎通過電子郵箱yongjunli@zut.edu.cn來信告知。
編 者
2019年1月
第一部分 基礎知識
第1章 UML類圖講解 1
1.1 UML中類的表示法 1
1.2 UML中類之間的關系 4
1.3 如何閱讀類圖 9
1.4 本章小結 12
第2章 設計原則介紹 13
2.1 單一職責原則 13
2.1.1 引題 13
2.1.2 相關知識 14
2.1.3 應用 15
2.2 里氏替換原則 16
2.2.1 引題 16
2.2.2 相關知識 17
2.2.3 應用 17
2.3 開-閉原則 20
2.3.1 引題 20
2.3.2 相關知識 23
2.3.3 應用 24
2.4 依賴倒置原則 26
2.4.1 引題 26
2.4.2 相關知識 27
2.4.3 應用 27
2.5 接口隔離原則 28
2.5.1 引題 28
2.5.2 相關知識 30
2.5.3 應用 30
2.6 迪米特法則 31
2.6.1 引題 31
2.6.2 相關知識 32
2.6.3 應用 33
2.7 合成/聚合復用原則 34
2.7.1 引題 34
2.7.2 相關知識 35
2.7.3 應用 36
2.8 本章小結 37
第二部分 設計模式
第3章 創建型模式 38
3.1 簡單工廠模式 38
3.1.1 引題 38
3.1.2 簡單工廠模式定義 41
3.1.3 簡單工廠模式相關知識 42
3.1.4 應用舉例 43
3.1.5 應用擴展——簡單工廠模式在JDK
中的應用 44
3.2 工廠方法模式 44
3.2.1 引題 44
3.2.2 工廠方法模式定義 45
3.2.3 工廠方法模式相關知識 46
3.2.4 應用舉例 47
3.2.5 應用擴展——反射在工廠方法模式
中的應用 49
3.3 抽象工廠模式 51
3.3.1 引題 51
3.3.2 抽象工廠模式定義 51
3.3.3 抽象工廠模式相關知識 54
3.3.4 應用舉例 54
3.3.5 應用擴展——抽象工廠模式在JDK
中的應用 57
3.4 單例模式 58
3.4.1 引題 58
3.4.2 單例模式定義 59
3.4.3 單例模式相關知識 60
3.4.4 應用舉例 60
3.4.5 應用擴展——單例模式在多線程
中的應用 61
3.5 原型模式 63
3.5.1 引題 63
3.5.2 原型模式定義 65
3.5.3 原型模式相關知識 66
3.5.4 應用舉例 67
3.5.5 應用擴展——淺復制與深復制 69
3.6 建造者模式 74
3.6.1 引題 74
3.6.2 建造者模式定義 75
3.6.3 建造者模式相關知識 77
3.6.4 應用舉例 78
3.6.5 應用擴展——建造者模式在Java API
中的應用 80
3.7 本章小結 80
3.8 習題 80
第4章 結構型模式 83
4.1 裝飾者模式 83
4.1.1 引題 83
4.1.2 裝飾者模式定義 86
4.1.3 裝飾者模式相關知識 88
4.1.4 應用舉例 88
4.1.5 應用擴展——裝飾者模式在Java API
中的應用 96
4.2 代理模式 97
4.2.1 引題 97
4.2.2 代理模式定義 100
4.2.3 代理模式相關知識 101
4.2.4 應用舉例 102
4.2.5 應用擴展——代理模式在Java API
中的應用 105
4.3 適配器模式 106
4.3.1 引題 106
4.3.2 適配器模式定義 106
4.3.3 適配器模式相關知識 108
4.3.4 應用舉例 108
4.3.5 應用擴展——適配器模式在Java API
中的應用 114
4.4 外觀模式 114
4.4.1 引題 114
4.4.2 外觀模式定義 115
4.4.3 外觀模式相關知識 117
4.4.4 應用舉例 117
4.4.5 應用擴展——外觀模式在Java API
中的應用 122
4.5 組合模式 122
4.5.1 引題 122
4.5.2 組合模式定義 125
4.5.3 組合模式相關知識 127
4.5.4 應用舉例 127
4.5.5 應用擴展——組合模式在
Java API中的應用 134
4.6 橋接模式 135
4.6.1 引題 135
4.6.2 橋接模式定義 137
4.6.3 橋接模式相關知識 138
4.6.4 應用舉例 139
4.6.5 應用擴展——橋接模式在
Java API中的應用 143
4.7 享元模式 143
4.7.1 引題 143
4.7.2 享元模式定義 144
4.7.3 享元模式相關知識 146
4.7.4 應用舉例 147
4.7.5 應用擴展——享元模式在
Java API中的應用 153
4.8 本章小結 153
4.9 習題 153
第5章 行為型模式 160
5.1 觀察者模式 160
5.1.1 引題 160
5.1.2 觀察者模式定義 163
5.1.3 觀察者模式相關知識 165
5.1.4 應用舉例 166
5.1.5 應用擴展——觀察者模式在
Java APJ中的應用 167
5.2 迭代器模式 169
5.2.1 引題 169
5.2.2 迭代器模式定義 173
5.2.3 迭代器模式相關知識 175
5.2.4 應用舉例 176
5.2.5 應用擴展——迭代器模式在
Java JDK中的應用 179
5.3 策略模式 181
5.3.1 引題 181
5.3.2 策略模式的定義 186
5.3.3 策略模式相關知識 187
5.3.4 應用舉例 188
5.3.5 應用擴展——策略模式在JDK
中的應用 190
5.4 模板方法模式 191
5.4.1 引題 191
5.4.2 模板方法模式定義 191
5.4.3 模板方法模式相關知識 193
5.4.4 應用舉例 193
5.4.5 應用擴展——模板方法模式在
Java API中的應用 195
5.5 命令模式 195
5.5.1 引題 195
5.5.2 命令模式定義 196
5.5.3 命令模式相關知識 198
5.5.4 應用舉例 198
5.5.5 應用擴展——命令模式在Java API
中的應用 201
5.6 狀態模式 201
5.6.1 引題 201
5.6.2 狀態模式定義 201
5.6.3 狀態模式相關知識 203
5.6.4 應用舉例 203
5.6.5 應用擴展——狀態模式在Java API
中的應用 207
5.7 責任鏈模式 207
5.7.1 引題 207
5.7.2 責任鏈模式定義 208
5.7.3 責任鏈模式相關知識 209
5.7.4 應用舉例 210
5.7.5 應用擴展——責任鏈模式在Java API
中的應用 212
5.8 解釋器模式 212
5.8.1 引題 212
5.8.2 解釋器模式定義 212
5.8.3 解釋器模式相關知識 214
5.8.4 應用舉例 214
5.9 備忘錄模式 217
5.9.1 引題 217
5.9.2 備忘錄模式定義 217
5.9.3 備忘錄模式相關知識 219
5.9.4 應用舉例 220
5.9.5 應用擴展 222
5.10 中介者模式 222
5.10.1 引題 222
5.10.2 中介者模式定義 223
5.10.3 中介者模式相關知識 225
5.10.4 應用舉例 225
5.11 本章小結 229
5.12 習題 230
第三部分 綜合案例
第6章 案例—學生信息管理系統 236
6.1 學生信息管理系統—抽象工廠模式與
單例模式結合 236
6.1.1 系統需求 236
6.1.2 模式應用分析 236
6.1.3 類設計 237
6.1.4 詳細編碼 238
6.2 數據庫連接池—動態代理模式與單例
模式相結合 254
6.2.1 需求分析 254
6.2.2 動態代理模式與單例模式實現
數據庫連接池 255
6.2.3 數據庫連接池的使用 262
6.3 小結 263
參考文獻 264
- 實用運籌學 [主編 邢育紅 于晉臣]
- 電子技術(第二版) [主編 覃愛娜 李飛]
- 勞動爭議處理實務 [主編 王秀卿 羅靜]
- 工程數學 [主編 郭立娟 王海]
- 語音識別理論與實踐 [主編 莫宏偉]
- 武術基礎教程 [主編 李代勇 謝志民]
- 計算機網絡實訓教程 [主編 張浩軍 趙玉娟]
- 畫法幾何與機械制圖習題集(多學時) [主編 趙軍]
- 電工電子技術基礎 [主編 劉 軍 楊國龍 劉天成]
- MySQL數據庫項目式教程 [陳亞峰]
- 機械設計基礎(第二版) [主編 田亞平 李愛姣]
- 畫法幾何與機械制圖 [主編 趙軍]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- 智能化技術基礎(第三版) [鄧文達 李禮]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- 網絡營銷 [主編 夏薇薇 劉婷 尚潔]
- 電視節目策劃與制作(微課版) [主 編 黃滴滴]
- 數據庫技術與應用實踐教程(SQL Server 2019) [主 編 嚴暉 周肆清]
- 大學應用數學 [主編 郭立娟]
- 軟件設計師考前沖刺100題 [施游 王曉笛 鄒月平 編著]
- 工業機器人拆裝與調試 [主編 胡月霞 向艷芳 朱奇]
- 功能材料制備與表征實驗指導書 [龔偉平 趙軍峰 梅海娟 等編著]
- 信號與系統(第二版) [主編 張宇]
- 信息技術基礎 [主編 唐倩 邵銳]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Photoshop 圖形圖像項目化教程 [主編 胡斌斌 黎婭 蘇大椿]
- 軟件設計師備考一本通 [倪奕文 編著]
- 體育舞蹈教程 [主編 劉偉 陳志明 曾明]