內容介紹
《易學設計模式》是作者在多年項目開發過程中的經驗總結,通過豐富的實例由淺入深、循序漸進地介紹了設計模式的基本原理、核心思想和使用時機,從而幫助軟體設計人員快速掌握設計模式的使用方法。
全書共分27章。第1章簡要介紹了設計模式的歷史、分類,以及如何學習設計模式和《易學設計模式》學習設計模式的路線圖。第2章對UML語言和UML工具進行了簡要介紹,使讀者能夠在後面的章節中建立一個交流的平台。第3章~第8章對創建型設計模式進行了講解。第9章~第15章對結構型設計模式進行了講解。第16章~第26章對行為型設計模式進行了講解。第27章著重講解了面向對象的設計原則、Java中接口和抽象類的區別,並對設計模式進行了綜合的對比,以使讀者能夠更全面地了解設計模式。
《易學設計模式》既有理論又有實踐,而且在實踐中既有對設計人員在日常企業套用開發中遇到的實際問題的講解,又有對一些公認設計比較好的開源軟體的研究,比如對JUnit、Log4j、Spring、Hibernate等源碼進行分析,目的只有一個,就是讓讀者通過對《易學設計模式》的學習,最終能夠熟練地將設計模式套用到設計中,從而幫助設計人員更好地進行設計。
《易學設計模式》適用於軟體設計人員閱讀,尤其適合想學習設計模式而又不得其法的開發人員閱讀,同時也可用作高校相關專業師生和社會培訓班的教材。
作者簡介
郭志學,系統分析師,從事了6年的企業級ERP套用開發和ERP基礎架構設計與研發工作,目前任東冉科技首席架構師,一直致力於J2EE的推廣和普及,在企業中還承擔著新進員工的技術培訓工作。
編輯推薦
不會模式就不算真正的編程高手;23種設計模式,23個成長的故事;對話中輕鬆掌握設計模式的真諦。
目錄
第1篇 設計模式基礎
第1章 欲速則不達:了解設計模式 1
1.1 小鞏的疑惑 1
1.2 從歷史開始 3
1.3 設計模式的分類 4
1.4 如何學習設計模式 5
1.5 本書的學習線路圖 6
1.6 學習設計模式的資源 6
第2章 磨刀不誤砍柴工:UML語言概述 7
2.1 UML語言的歷史 7
2.2 UML語言簡介 7
2.3 使用ROSE工具 12
2.4 使用Togther 16
2.5 使用Visio 21
第2篇 創建型模式詳解
第3章 術業有專攻:簡單工廠模式(SimpleFactory) 23
3.1 先談創建模式的分類 23
3.2 從動物園說起 24
3.3簡單工廠模式簡介 27
3.4 簡單工廠模式的實際套用 28
3.5 簡單工廠模式的優缺點 29
第4章 精益求精:工廠方法模式(FactoryMethod) 30
4.1 為什麼要使用工廠方法模式 30
4.2 再談動物園管理系統的設計 31
4.3 工廠方法模式簡介 34
4.4 回顧簡單工廠模式下的薪資程式設計 36
4.5 用工廠方法模式實現薪資程式的設計 37
4.6 工廠方法模式的優缺點 38
第5章 再接再厲:抽象工廠模式(AbstractFactory) 39
5.1 為什麼要使用抽象工廠模式 39
5.2 再談動物園管理系統的設計 40
5.3 抽象工廠模式簡介 45
5.4 回顧工廠方法模式下的薪資程式設計 47
5.5 用抽象工廠模式實現薪資程式的設計 48
5.6 抽象工廠模式的優缺點 51
第6章 孜孜不倦:創建者模式(Builder) 52
6.1 為什麼要使用創建者模式 52
6.2 從機車的組裝談起 53
6.3 創建者模式簡介 57
6.4 回顧抽象工廠模式下的薪資程式設計 58
6.5 用創建者模式實現薪資程式的設計 60
6.6 創建者模式的優缺點 60
第7章 照貓畫虎:原型模式(Prototype) 61
7.1 為什麼要使用原型模式 61
7.2 從配鑰匙談起 61
7.3 原型模式的簡介 63
7.4 Java中原型模式的實際套用 64
7.5 原型模式的優缺點 68
第8章 獨一無二:單例模式(Singleton) 69
8.1 為什麼要使用單例模式 69
8.2 從系統日誌的記錄談起 69
8.3 單例模式簡介 73
8.4 單例模式在Log4j中的套用 74
8.5 單例模式的優缺點 78
第3篇 結構型模式詳解
第9章 一目了然:外觀模式(Facade) 79
9.1 從系統間的銜接談起 79
9.2 外觀模式簡介 79
9.3 用外觀模式實現持久層框架的設計 81
9.4 外觀模式的優缺點 104
第10章 改頭換面:適配器模式(Adapter) 105
10.1 為什麼要使用適配器模式 105
10.2 再談系統間的銜接 105
10.3 適配器模式簡介 107
10.4 適配器模式在Spring中的實際套用 108
10.5 適配器模式在Java的I/O中的實際套用 112
10.6 適配器模式的優缺點 117
第11章 越俎代庖:代理模式(Proxy) 118
11.1 為什麼要使用代理模式 118
11.2 從如何記錄系統日誌談起 118
11.3 代理模式簡介 121
11.4 代理模式在Spring的AOP中的實際套用 122
11.5 代理模式在Hibernate的延遲載入中的實際套用 130
11.6 代理模式的優缺點 148
11.7 小結 148
第12章 真人不露相:裝飾模式(decorator) 149
12.1 為什麼要使用裝飾模式——從手機彩鈴談起 149
12.2 裝飾模式簡介 153
12.3 裝飾模式在Java的I/O中的實際套用 155
12.4 裝飾模式在JUnit中的實際套用 167
12.5 裝飾模式的優缺點 170
12.6 小結 170
第13章 遊刃有餘:橋模式(Bridge) 171
13.1 為什麼要使用橋模式 171
13.2 從汽車製造談起 173
13.3 橋模式簡介 177
13.4 JDBC中橋模式的實際套用 178
13.5 橋模式的優缺點 196
13.6 小結 196
第14章 如法炮製:組合模式(Composite) 197
14.1 為什麼要使用組合模式 197
14.2 從企業組織機構的設計談起 198
14.3 組合模式簡介 201
14.4 組合模式在算術運算中的實際套用 202
14.5 組合模式在JUnit中的實際套用 205
14.6 組合模式的優缺點 213
14.7 小結 214
第15章 源源不斷:享元模式(flyweight) 215
15.1 為什麼要使用享元模式——從文字編輯器談起 215
15.2 享元模式簡介 220
15.3 用享元模式實現資料庫連線池的設計 221
15.4 享元模式的優缺點 227
15.5 小結 227
第4篇 行為型模式詳解
第16章 按部就班:模板方法模式(TemplateMethod) 229
16.1 為什麼要使用模板方法模式 229
16.2 再談薪資程式的設計 232
16.3 模板方法模式簡介 234
16.4 模板方法模式在Spring的JdbcTemplate中的實際套用 235
16.5 模板方法模式在Spring的HibernateTemplate中的實際套用 249
16.6 模板方法模式的優缺點 264
16.7 小結 264
第17章 風吹草動:觀察者模式(Observer) 265
17.1 為什麼要使用觀察者模式 265
17.2 從股票系統的設計談起 267
17.3 觀察者模式簡介 270
17.4 觀察者模式在Java中的實際套用 272
17.5 觀察者模式在JUnit中的實際套用 275
17.6 觀察者模式的優缺點 281
17.7 小結 281
第18章 變化多端:狀態模式(State) 282
18.1 為什麼要使用狀態模式 282
18.2 從公文系統的設計談起 283
18.3 狀態模式簡介 286
18.4 使用狀態模式來實現QQ的狀態 287
18.5 狀態模式的優缺點 289
18.6 小結 289
第19章 明修棧道,暗度陳倉:策略模式(Strategy) 290
19.1 為什麼要使用策略模式 290
19.2 再談薪資系統的設計 295
19.3 策略模式簡介 299
19.4 策略模式的優缺點 300
19.5 小結 300
第20章 循序漸進:職責鏈模式(ChainofResponsibility) 301
20.1 為什麼要使用職責鏈模式 301
20.2 從醫院看病談起 302
20.3 職責鏈模式簡介 305
20.4 用職責鏈模式實現財務借支審批系統 306
20.5 職責鏈模式的優缺點 309
20.6 小結 310
第21章 獨具匠心:命令模式(Command) 311
21.1 為什麼要使用命令模式 311
21.2 從觀看NBA比賽談起 313
21.3 命令模式簡介 315
21.4 命令模式在MVC框架中的具體套用 317
21.5 命令模式在JUnit中的實際套用 328
21.6 命令模式的優缺點 334
21.7 小結 334
第22章 步調一致:訪問者模式(Visitor) 335
22.1 為什麼要使用訪問者模式 335
22.2 從超市購物談起 338
22.3 訪問者模式簡介 342
22.4 訪問者模式的優缺點 343
22.5 小結 343
23.1 為什麼要使用調停者模式 344
23.2 從MSN聊天談起 345
23.3 調停者模式簡介 348
23.4 調停者模式在交通紅綠燈中的具體套用 349
23.5 調停者模式的優缺點 352
23.6 小結 352
第24章 白紙黑字:備忘錄模式(Memento) 353
24.1 為什麼要使用備忘錄模式 353
24.2 從會議紀要談起 353
24.3 備忘錄模式簡介 355
24.4 備忘錄模式的優缺點 356
24.5 小結 356
第25章 周而復始:疊代器模式(Iterator) 357
25.1 為什麼要使用疊代器模式 357
25.2 從Java的疊代器談起 357
25.3 疊代器模式簡介 358
25.4 疊代器模式在Java中的具體套用 360
25.5 疊代器模式的優缺點 382
25.6 小結 382
第26章 望文生義:解釋器模式(Interpreter) 383
26.1 從文字翻譯談起 383
26.2 解釋器模式簡介 385
26.3 解釋器模式的優缺點 386
26.4 小結 386
第5篇 設計模式的綜合套用
第27章 無招勝有招:如何在設計中套用設計模式 387
27.1 面向對象的設計原則 387
27.2 Java中接口和抽象類的區別 389
27.3 綜合對比各個設計模式的思想 394
27.4 不要過度使用設計模式 396
27.5 小結 396
……