目 录
第Ⅰ部分 模式与设计原则
第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
· · · · · · (
收起)