目 錄
第Ⅰ部分 模式與設計原則
第1章 成功應用程序的模式 3
1.1 設計模式釋義 3
1.1.1 起源 4
1.1.2 必要性 4
1.1.3 有效性 4
1.1.4 局限性 5
1.2 設計原則 5
1.2.1 常見設計原則 5
1.2.2 S.O.L.I.D.設計原則 6
1.3 Fowler的企業設計模式 7
1.3.1 分層 7
1.3.2 領域邏輯模式 7
1.3.3 對象關係映射 8
1.3.4 Web錶示模式 9
1.3.5 基本模式、行為模式和結構模式 9
1.4 其他有名的設計實踐 10
1.4.1 測試驅動設計 10
1.4.2 領域驅動設計 10
1.4.3 行為驅動設計 10
1.5 小結 11
第2章 剖析模式的模式 13
2.1 如何閱讀設計模式 13
2.1.1 GoF模式模闆 13
2.1.2 簡化模闆 14
2.2 設計模式分組 14
2.2.1 創建型 14
2.2.2 結構型 15
2.2.3 行為型 15
2.3 如何選擇和運用設計模式 16
2.4 快速模式示例 17
2.4.1 根據設計原則進行重構 19
2.4.2 根據Adapter模式進行重構 21
2.4.3 利用企業模式 24
2.5 小結 25
第Ⅱ部分 剖析ASP.NET應用程序:
學習並應用模式
第3章 應用程序分層與關注點分離 29
3.1 應用程序體係結構與設計 29
3.1.1 反模式:智能UI 29
3.1.2 分離關注點 35
3.2 小結 51
第4章 業務邏輯層:組織 53
4.1 理解業務組織模式 53
4.1.1 Transaction Script 53
4.1.2 Active Record 55
4.1.3 Domain Model 65
4.1.4 Anemic Domain Model 86
4.1.5 領域驅動設計 88
4.2 小結 91
第5章 業務邏輯層:模式 93
5.1 應用設計模式 93
5.1.1 Factory Method模式 93
5.1.2 Decorator模式 97
5.1.3 Template Method模式 103
5.1.4 State模式 107
5.1.5 Strategy模式 113
5.2 應用企業模式 117
5.2.1 Specification模式 117
5.2.2 Composite模式 119
5.2.3 Layer Supertype模式 124
5.3 應用設計原則 127
5.3.1 依賴倒置原則和依賴注入模式 127
5.3.2 接口分離原則 133
5.3.3 裏氏替換原則 137
5.4 小結 147
第6章 服務層 149
6.1 服務層介紹 149
6.1.1 SOA 149
6.1.2 SOA的4項信條 152
6.1.3 Facade設計模式 152
6.2 應用Messaging模式 153
6.2.1 Document Message和
Request-Response模式 154
6.2.2 Reservation模式 155
6.2.3 Idempotent模式 156
6.3 SOA示例 156
6.3.1 領域模型和資源庫 157
6.3.2 服務層 166
6.3.3 客戶端代理 180
6.3.4 客戶端 183
6.4 小結 187
第7章 數據訪問層 189
7.1 DAL介紹 189
7.2 數據訪問策略 189
7.2.1 Repository模式 190
7.2.2 Data Access Objects模式 191
7.3 數據訪問模式 191
7.3.1 Unit of Work模式 191
7.3.2 數據並發控製 198
7.3.3 Lazy Loading和Proxy模式 201
7.3.4 Identity Map模式 206
7.3.5 Query Object模式 208
7.4 使用對象關係映射器 218
7.4.1 NHibernate 219
7.4.2 MS Entity Framework 219
7.4.3 ORM代碼示例 219
7.5 小結 280
第8章 錶示層 283
8.1 反轉控製 283
8.1.1 Factory Method設計模式 283
8.1.2 Service Locator 285
8.1.3 IoC容器 286
8.1.4 StructureMap 286
8.2 Model-View-Presenter 290
8.3 Front Controller 313
8.3.1 Command模式 314
8.3.2 Chain of Responsibility模式 336
8.4 Model-View-Controller 344
8.4.1 ViewModel模式 344
8.4.2 ASP.NET MVC框架 345
8.4.3 利用AutoMapper映射ViewModel 357
8.4.4 Castle MonoRail 362
8.5 Page Controller模式 369
8.6 小結 370
第9章 用戶體驗層 371
9.1 什麼是AJAX 371
9.2 使用JavaScript庫 372
9.3 理解AJAX模式 372
9.3.1 Periodic Refresh和Timeout 372
9.3.2 Unique URL 390
9.3.3 利用JavaScript Template實現數據
綁定 390
9.3.4 Predictive Fetch 408
9.4 小結 414
第Ⅲ部分 案例研究:
在綫電子商務商店
第10章 需求和基礎設施 417
10.1 Agatha服裝店需求 417
10.1.1 Product Catalog和Basket截屏 418
10.1.2 顧客賬號屏幕 420
10.1.3 結賬屏幕 422
10.1.4 緩存和日誌 423
10.2 架構 423
10.3 小結 443
第11章 創建商品目錄 445
11.1 創建産品目錄 445
11.1.1 Product Catalog模型 445
11.1.2 Product Catalog數據錶 450
11.1.3 Product Catalog資源庫 451
11.1.4 Product服務 465
11.1.5 控製器 480
11.1.6 Product Catalog視圖 490
11.1.7 設置IoC 513
11.2 小結 516
第12章 實現購物車 519
12.1 實現購物車 519
12.1.1 Basket領域模型 519
12.1.2 創建購物車數據錶 529
12.1.3 NHibernate映射 530
12.1.4 購物車服務 533
12.1.5 購物車控製器和購物車視圖 543
12.2 小結 565
第13章 顧客會員 567
13.1 顧客會員 567
13.1.1 Customer模型 568
13.1.2 Customer數據錶 573
13.1.3 Customer NHibernate映射 573
13.1.4 Customer服務 576
13.1.5 身份驗證服務 585
13.1.6 Customer控製器 593
13.1.7 Account控製器 597
13.1.8 顧客關係視圖 607
13.1.9 身份驗證視圖 611
13.2 小結 617
第14章 訂購和支付 619
14.1 結賬 619
14.1.1 Order模型 620
14.1.2 Order數據錶 635
14.1.3 Order NHibernate映射 636
14.1.4 Order服務 639
14.1.5 利用PalPay進行支付 648
14.1.6 Order、Payment與Checkout
控製器 657
14.1.7 Order和Checkout視圖 666
14.2 小結 676
· · · · · · (
收起)