第1章 軟件設計模式的概述\t1
1.1 軟件設計模式及其發(fā)展簡史\t1
1.1.1 模式與軟件設計模式\t1
1.1.2 軟件設計模式的產生與發(fā)展\t1
1.1.3 軟件設計模式的基本特點\t2
1.2 軟件設計模式的定義、基本要素及研究意義\t6
1.2.1 軟件設計模式的定義\t6
1.2.2 基本要素\t6
1.2.3 研究意義\t7
1.3 GoF設計模式及其分類\t7
1.3.1 GoF設計模式\t7
1.3.2 創(chuàng)建型設計模式、結構型設計模式和行為型設計模式\t8
1.3.3 類模式與對象模式\t8
1.3.4 進一步分類\t8
1.4 軟件設計模式的相關課程\t9
1.4.1 軟件體系結構\t9
1.4.2 軟件工程\t9
1.4.3 Java方向的系列課程\t9
習題\t11
第2章 UML類圖及類間關系\t13
2.1 UML概述\t13
2.1.1 UML定義及發(fā)展簡史\t13
2.1.2 UML建模技術的應用\t14
2.2 UML類圖\t15
2.2.1 使用UML表示類\t15
2.2.2 UML類圖繪制軟件\t15
2.2.3 AmaterasUML插件的使用\t16
2.3 類間關系及其UML類圖表示\t17
2.3.1 關聯(lián)關系\t17
2.3.2 依賴關系\t19
2.3.3 泛化關系\t19
2.3.4 實現(xiàn)關系\t20
習題\t21
實驗\t22
第3章 面向對象設計原則\t23
3.1 面向對象設計原則的概述\t23
3.2 開閉原則\t24
3.3 里氏代換原則\t24
3.4 依賴倒置原則\t25
3.5 合成-聚合復用原則\t25
3.6 單一職責原則\t27
3.7 迪米特法則\t28
3.8 接口隔離原則\t29
習題\t30
實驗\t32
第4章 創(chuàng)建型設計模式\t33
4.1 工廠模式\t33
4.1.1 預備知識:XML解析與使用Java反射創(chuàng)建對象\t33
4.1.2 簡單工廠模式\t38
4.1.3 工廠方法模式\t41
4.1.4 抽象工廠模式\t44
4.2 單例模式及其擴展\t49
4.2.1 單例模式\t49
4.2.2 懶漢式單例類、餓漢式單例類與線程安全\t52
4.3 原型模式及其擴展\t54
4.3.1 原型模式\t54
4.3.2 淺克隆與深克隆\t58
4.4 建造者模式及其擴展\t64
4.4.1 建造者模式\t64
4.4.2 使用鉤子方法控制產品的建造過程\t67
4.4.3 在抽象建造者中組合產品\t69
習題\t72
實驗\t74
第5章 結構型設計模式\t76
5.1 外觀模式及應用\t76
5.1.1 外觀模式\t76
5.1.2 使用抽象外觀類可更好地滿足開閉原則\t79
5.2 適配器模式\t82
5.2.1 類適配器模式\t83
5.2.2 對象適配器模式\t84
5.2.3 雙向適配器模式\t85
5.3 組合模式\t87
5.4 代理模式及應用\t93
5.4.1 代理模式\t93
5.4.2 靜態(tài)代理與動態(tài)代理\t96
5.4.3 JDK動態(tài)代理及應用\t96
5.4.4 CGLib動態(tài)代理\t100
5.4.5 遠程代理、RMI與RPC\t102
5.5 橋接模式\t109
5.6 裝飾模式\t112
5.7 享元模式及應用\t119
5.7.1 享元模式\t119
5.7.2 享元模式在JDK開發(fā)中的應用\t125
習題\t126
實驗\t129
第6章 行為型設計模式\t132
6.1 策略模式\t132
6.2 模板方法模式及應用\t135
6.2.1 模板方法模式\t135
6.2.2 模板方法模式在Servlet組件開發(fā)中的應用\t138
6.3 備忘錄模式\t141
6.4 觀察者模式及應用\t146
6.4.1 觀察者模式\t146
6.4.2 觀察者模式的應用\t152
6.5 迭代器模式及應用\t153
6.5.1 迭代器模式\t153
6.5.2 迭代器模式在JDK集合框架中的應用\t156
6.6 命令模式及其應用\t157
6.6.1 命令模式\t157
6.6.2 智能家居遙控器\t160
6.6.3 日志功能與命令的撤銷和恢復功能\t163
6.6.4 使用棧實現(xiàn)多次撤銷與恢復\t165
6.6.5 聯(lián)用命令模式和組合模式實現(xiàn)宏命令\t168
6.7 狀態(tài)模式及應用\t171
6.7.1 狀態(tài)模式\t171
6.7.2 狀態(tài)模式與策略模式應用的比較\t175
6.8 職責鏈模式及其擴展\t180
6.8.1 職責鏈模式\t180
6.8.2 純的職責鏈模式和不純的職責鏈模式\t185
6.8.3 與狀態(tài)模式比較\t185
6.9 中介者模式\t185
6.10 訪問者模式\t188
6.11 解釋器模式及應用\t193
6.11.1 基礎知識:詞法分析、語法分析與抽象語法樹\t193
6.11.2 解釋器模式\t195
6.11.3 模式的應用\t199
習題\t211
實驗\t215
第7章 設計模式綜合應用\t219
7.1 需求分析\t219
7.2 總體設計\t219
7.2.1 總體設計流程圖\t219
7.2.2 模塊設計\t219
7.2.3 界面設計\t220
7.3 功能設計及其設計模式分析\t222
7.3.1 使用簡單工廠模式和單例模式管理繪圖工具\t222
7.3.2 使用模板方法管理工具面板和顏色面板\t223
7.3.3 使用狀態(tài)模式管理系統(tǒng)菜單\t226
7.3.4 使用迭代器模式存取圖片文件\t227
7.3.5 使用備忘錄模式管理編輯操作\t230
習題\t232
實驗\t234
參考文獻\t236