第1篇 設計之要
第1章 設計之道
1.1 計劃的設計與演進的設計
1.2 架構的標準
1.3 過度設計,還是簡單設計
1.4 需要設計模式嗎
1.5 重構是必然的
1.6 UML重要嗎
1.7 測試驅動開發(fā)
第2章 對象法則
2.1 面向對象思想
2.2 面向對象核心要素
2.2.1 封裝
2.2.2 繼承
2.2.3 多態(tài)
2.3 面向對象設計原則
2.3.1 單一職責原則
2.3.2 開放封閉原則
2.3.3 Liskov替換原則
2.3.4 依賴倒置原則
2.3.5 接口隔離原則
第3章 封裝變化
3.1 設計模式之鵠的
3.2 如何封裝變化
3.2.1 封裝對象行為的變化
3.2.2 封裝對象創(chuàng)建的變化
3.2.3 封裝對象結構的變化
3.3 解耦具體依賴
3.3.1 配置文件與反射技術
3.3.2 表驅動法
3.3.3 慣例優(yōu)于配置
3.3.4 依賴注入
第4章 體驗重構
4.1 一個階乘容器
4.2 代碼的壞味道
4.3 需求發(fā)生變化
4.4 運用重構利器
4.5 引入設計模式
第5章 測試驅動開發(fā)
5.1 發(fā)現價值與生產價值
5.2 運用面向對象編程思想
5.3 適時小結
5.4 收獲價值
5.5 無上之力
第2篇 .NET框架與設計模式
第6章 .NET中的工廠方法模式
6.1 “嫁禍江東”之計
6.2 WebRequest對象的創(chuàng)建
6.3 改造工廠方法模式
6.4 實現良好的可擴展性
6.5 慣例優(yōu)于配置
第7章 .NET中的合成模式
7.1 字處理軟件
7.2 .NET框架中的控件
7.3 “復合方式”的合成模式
第8章 .NET中的裝飾器模式
8.1 一步一步走向裝飾器模式
8.2 .NET框架中對流的處理
第9章 .NET中的迭代器模式
9.1 分辨對象的職責
9.2 實現迭代器模式
9.3 迭代器模式大觀園
9.4 迭代器模式在.NET框架中的實現
9.5 通過yield return實現迭代器
9.6 C# .0對迭代器模式的支持
第10章 .NET中的策略模式
10.1 稅務系統(tǒng)
10.2 利用委托實現策略模式
10.3 .NET框架中的Provider對象
第11章 .NET中的命令模式
11.1 考勤管理系統(tǒng)
11.2 命令模式在WF中的運用
11.3 合成模式與命令模式的結合
第3篇 媒體播放器的設計之旅
第12章 面向對象與接口分離
12.1 拙劣的設計
12.2 面向對象設計
12.3 接口分離
12.4 解除具體依賴
第13章 接口行為的適配
13.1 新的應用場景
13.2 “狼”與“羊”的關系
13.3 引入適配器模式
13.3.1 類的適配器模式
13.3.2 對象的適配器模式
13.4 適配器模式比較
第14章 接口行為的擴展
14.1 設計走向死胡同
14.2 考察適配器模式
14.3 引入訪問者模式
14.4 非循環(huán)訪問者模式
14.5 合理運用訪問者模式
第15章 接口行為的裝飾
15.1 不斷變化的需求
15.2 考慮代理模式
15.3 引入裝飾器模式
第4篇 設計模式應用實踐
第16章 抽象工廠模式應用
16.1 報表組件
16.2 糟糕的設計
16.3 引入抽象工廠模式
16.4 工廠對象的使用
16.5 引入策略模式和橋接模式
16.6 適配器模式擴展抽象工廠結構
16.7 接口還是抽象類
第17章 建造者模式應用
17.1 裝配設備對象
17.2 糟糕的設計
17.3 引入建造者模式
17.4 從容應對擴展
第18章 命令模式應用
18.1 安裝向導
18.2 糟糕的設計
18.3 引入命令模式
18.4 進一步完善
18.5 分辨對象職責與變化
第19章 職責鏈模式應用
19.1 員工培訓系統(tǒng)
19.2 設計模型
19.3 設計的重構
19.4 職責鏈模式
第20章 觀察者模式應用
20.1 監(jiān)控設備狀態(tài)
20.2 引入觀察者模式
20.3 事件與委托改進觀察者模式
第21章 代理模式應用
21.1 顯示設備控件
21.2 引入代理模式
21.3 完善設計
第22章 設計模式綜合應用
22.1 話單轉換工具
22.2 糟糕的設計
22.3 面向對象的設計思想
22.4 引入策略模式
22.5 需求發(fā)生變化
22.6 引入模板方法模式
22.7 合理的設計才是最好的設計
22.8 引入橋接模式
22.9 分離接口
22.10 引入抽象工廠模式
第5篇 .NET體系架構
第23章 軟件體系架構
23.1 分層架構模式
23.2 分層架構模式之優(yōu)劣
23.3 PetShop的架構版本演化
23.4 PetShop .0的系統(tǒng)架構
第24章 數據訪問層
24.1 數據庫樣式
24.2 數據對象
24.3 SQL語句之瘤
24.4 運用ORM的思想
24.5 資源庫模式與工作單元模式
24.6 事務的處理
24.7 具有簡單工廠特質的抽象工廠模式
24.8 服務定位器模式
第25章 消息處理
25.1 MSMQ的實現
25.1.1 消息處理模塊的組成
25.1.2 消息接口
25.1.3 消息接口的實現
25.1.4 消息工廠
25.1.5 后臺處理應用程序
25.1.6 引入策略模式
25.2 分布式處理
第26章 ASP.NET緩存
26.1 ASP.NET緩存概述
26.2 SqlCacheDependency特性
26.2.1 利用aspnet_regsql工具
26.2.2 利用SqlCacheDependencyAdmin類
26.3 ASP.NET緩存在PetShop .0中的實現
26.3.1 CacheDependency接口
26.3.2 CacheDependency實現
26.3.3 CacheDependency工廠
26.3.4 引入門面模式
26.3.5 引入代理模式
第27章 業(yè)務邏輯層
27.1 與領域專家合作
27.2 業(yè)務邏輯層的模式應用
27.3 PetShop的業(yè)務邏輯層
27.4 與數據訪問層的通信
27.5 面向接口設計
第28章 表現層
28.1 頁面控制器模式
28.2 用戶管理
28.2.1 Profile特性
28.2.2 Membership特性
28.3 ASP.NET控件
28.3.1 自定義控件
28.3.2 用戶控件
28.3.3 登錄控件
28.3.4 Master Page
28.4 MVC模式
28.5 表現層的演變
參考文獻