设计模式-基于C#的工程化实现及扩展 (目录)

非常感谢博文的周老师、陈琼还有几位编辑的提点,目录修正了好几次。
昨天怪怪同学、李会军同学、王涛同学还给了很多建议,对于俺从技术或读者的角度改进这本书有很大的启发和帮助,我正在修改。

Section I
     Section I:准备内容    1
发掘C#语言面向对象化设计的潜力    1
第2章 C#面向对象化开发扩展
2.1  C# 部分语法内容扩展
2.1.1命名空间(Namespace)    2
2.1.1.1 Why和尴尬的现状    2
2.1.1.2 关于Namespace的示例    3
2.1.1.3 小结    4
2.1.2  委托(Delegate)    4
2.1.2.1 用Delegate完成异步调用    4
2. 1.2.2 1对n的通知    5
2. 1.2.3 调用匿名方法    7
2. 1.2.4 调用重载方法    8
2. 1.2.5 小结    10
2.1.3  泛型(Generics)    10
2. 1.3.1 抽象    10
2. 1.3.2 应用于模式    11
2. 1.3.3容器    14
2. 1.3.4类型参数约束    14
2. 1.3.5 小结    16
2.1.4  属性(Attribute)    16
2. 1.4.1 用Attribute指导模式    16
2. 1.4.2 进一步方便客户程序调用    19
2. 1.4.3 小结    20
2.1.5  索引器(Indexer)    20
2. 1.5.1 服务于集合    20
2. 1.5.2 封装单列集合的访问    21
2. 1.5.3 多列的集合    23
2. 1.5.4实现类似RDBMS中联合主键或唯一性索引的访问    24
2. 1.5.5通过委托传递索引规则    24
2. 1.5.6 小结    25
2.1.6  迭代器(Iterator)    25
2. 1.6.1 基本应用    26
2. 1.6.2 简化复杂结构的遍历    27
2. 1.6.3 小结    31
2.2  可重载运算符(Overloadable Operators)与转换运算符(Conversion Operators)    32
2.2.1 The Day After Someday    32
2.2.2 用于有限的状态迭代    33
2.2.3 操作集合    33
2.2.4类型的适配    35
2.2.5小结    36
2.3  对象化配置访问(Configuration)    36
2.3.1 认识.Net Framework提供的主要配置实体类    37
2.3.2 应用实例    38
2.3.3小结    46
2.4  实现依赖注入    46
2.4.1 背景介绍    46
2.4.2 示例情景    47
2.4.3 Constructor注入    49
2.4.4 Setter注入    50
2.4.5 接口注入    51
2.4.6 基于Attribute实现注入——Attributer    52
2.4.7 小结    53
第3章   开始每个设计模式之前
3.1  new()的替代品    55
3.2  准备一个轻量的内存Cache    57
3.3  准备一个集中访问配置文件的Broker    60
3.4  Web? Not Web?    63
3.5  小结    75

Section II
     Section II:创建型模式    76

第4章   工厂 & 工厂方法模式(Factory & Factory Method)
4.1  简单工厂:    77
4.1.1 最简单的工厂类    77
4.1.2 参数化工厂    81
4.1.3 简单工厂局限性    81
4.2  意图、动机、适用性、参与者、结构和示例    81
4.3  解耦Concrete Factory与客户程序    83
4.4  基于配置文件的Factory    84
4.5  批量对象Factory    87
4.5.1 开发情景    87
4.5.2定义产品类型容器    88
4.5.3 定义具有批量任务特征的批量工厂和产品类型容器    89
4.5.4定义Director    90
4.5.5设计由Director指导生产的客户程序,并进行测试    91
4.6  基于类型参数的Generic Factory    93
4.7  Delegate Factory    95
4.8  小结    96
第5章  单件模式(Singleton)
5.1 意图、动机、适用性、参与者、结构和示例    99
5.2 线程安全的Singleton    102
5.3 防止那些不显而易见的破坏因素    104
5.4 细颗粒度Singleton    105
5.4.1背景讨论    105
5.4.2解决Windows Form下的细颗粒度Singleton问题    105
5.4.3解决Web Form下的细颗粒度Singleton问题    107
5.4.4更通用的细颗粒度Singleton    109
5.5 自动更新的Singleton    120
5.6 参数化Singleton    121
5.7 跨进程Singleton    126
5.8  Singleton的扩展——Singleton-N    127
5.8.1定义具有执行状态的抽象对象    128
5.8.2定义相应的Singleton-N实例集合    129
5.8.3在基本Singleton模式实现的框架下引入实例集合    130
5.9  基于配置的Singleton    131
5.10 基于类型参数的Generic Singleton    132
5.11 生成Singleton对象的Factory    141
5.12 小结    141
第6章  抽象工厂模式(Abstract Factory)
说明    143
6.1 意图、动机、适用性、参与者、结构和示例    143
6.2 具有Type Mapper的Abstact Factory    146
6.2.1 通过Type Mapper实现通用AbstractFactory类型    146
6.2.2 经典抽象工厂模式“硬伤”的处理    147
6.3  Type Mapper / Abstract Factory    148
6.3.1 分析    148
6.3.2 构造TypeMapper、TypeMapperDictionary    150
6.3.3 定义具有TypeMapper属性的抽象工厂    150
6.3.4 定义实体TypeMapper和实体工厂    151
6.3.5 定义AssemblyMechanism    151
6.5 基于配置的Abstract Factory    152
6.6 基于Delegate的异步Factory    155
6.7 小结    157
第7章  创建者模式(Builder_Obsoleted)
7.1 意图、动机、适用性、参与者、结构和示例    160
7.2 异步调用的BuildUp()    162
7.3 基于Attribute的Builder    165
7.3.1 分析    165
7.3.1.1 工具类型设计    165
7.3.1.2定义用于指导BuildPart过程的属性    166
7.3.1.3定义具有BuildPart自动发现机制的动态Builder    167
7.4 具有BuildUp()和TearDown()能力的动态Builder    169
7.5 基于配置的Builder    171
7.5.1 分析    171
7.5.1.1用UML设计抽象类型并表示为XSD    173
7.5.1.2删除XSD中不经常变化的内容    173
7.5.1.3 映射为配置节或配置元素    174
7.5.1.4 实现配置实体对象    175
7.5.1.5实现基于配置的创建者    179
7.6 用Iterator控制BuildUp()和TearDown()次序    180
7.7 小结    182
    7.7.1基于类型参数的Generic Builder    183
7.7.2分析    183
7.7.3重新定义抽象产品类型和抽象创建者    184
第8章  原型模式(Prototype)
8.1意图、动机、适用性、参与者、结构和示例    186
8.2浅表复制和深层复制    190
8.2.1概念    190
8.2.2完成工具类SerializationHelper    191
8.2.3用NonSerializedAttribute影响序列化    193
8.2.4用ISerializable定制复制过程    194
8.3重新定义原型方法    196
8.4同时支持和序列化的泛型集合类型处理……………………………………………..197
8.5小结    197

Section III
      Section III:结构型模式    198

第9章  适配器模式(Adapter)
9.1意图、动机、适用性、参与者、结构和示例    199
9.2 1:N的组适配器    202
9.3 Adapter——Adapter互联模式    205
9.3.1分析    205
9.3.2方式一:客户程序直接调度Adapter    207
9.3.3方式二:借助Endpoint实现同步调用    207
9.3.4方式三:借助反射和Endpoint实现异步调用    208
9.4基于配置的Adapter    209
9.5 XML数据的适配过程    210
9.6小结    212
第10章 桥模式(Bridge)
10.1意图、动机、适用性、参与者、结构和示例    215
10.2多级Bridge    218
10.3基于配置的Bridge    221
10.4具有上下文内容的Bridge    223
10.5小结    225
第11章 组合模式(Composite)
11.1意图、动机、适用性、参与者、结构和示例    228
11.2用迭代器遍历组合类型    232
11.3服务于XML对象的组合模式    234
11.4小结    237
第12章  装饰模式(Decorator)
12.1意图、动机、适用性、参与者、结构和示例    239
12.2对Decorator进行动态更新    243
12.2.1分析    243
12.2.2重新定义IDecorator    244
12.2.3定义具体的IState类型    245
12.2.4根据IState修改每个Decorator类型    246
12.2.5验证“动态”修改Decorator的能力    247
12.3设计Decorator与Builder协作的产物    248
12.4用Attribute把Decorator做成标签    250
12.4.1对更为“彻底”的Attribute注入方式的考虑    250
12.4.2方式1:采用.NET平台自带的AOP机制实现    251
12.4.3方式2:自定义代理拦截框架方式    254
12.4.4进一步分析    257
12.5小结    257
第13章  外观模式(Façade)
13.1意图、动机、适用性、参与者、结构和示例    259
13.2 Façade接口    262
13.3 Remote Façade    263
13.4面向性能考虑的升级版Remote Façade——Data Transfer Object模式    266
13.5平台、开发语言无关的抽象Façade接口——WSDL    270
13.6面向使用者考虑的Fluent Interface设计    270
13.7小结    272
第14章 享元模式(Flyweight)
14.1意图、动机、适用性、参与者、结构和示例    275
14.2基于配置的Flyweight    277
14.3综合类型系统的Flyweight——Object Pool    278
14.3.1对象池的应用背景    279
14.3.2总体技术结构    279
14.3.3抽象类型类型实体设计    280
14.3.4用经典的享元模式实现对象缓冲    280
14.3.5示例    281
14.4线程级Flyweight    284
14.5通过Delegate和队列实现异步Flyweight    285
14.6小结    286
第15章  代理模式(Proxy)
15.1意图、动机、适用性、参与者、结构和示例    288
15.2远程访问代理    290
15.2.1第一步、定义远程访问的服务协议    291
15.2.2第二步、定义服务端的配置文件及相应的宿主程序    291
15.2.3第三步、生成客户端远程代理(Proxy)类型    292
15.2.4第四步、编写客户端程序    293
15.3数据访问代理    294
15.4对象缓存代理    296
15.5通过IList<Delegate>实现Proxy的PreProcess和PostProcess    298
15.5.1第一步、定义外部处理机制的抽象结构    299
15.5.2第二步、定义新增处理的配置信息    300
15.5.3第三步、定义配置解析对象    301
15.5.4第四步、修正服务端和代理类的处理过程    302
15.6小结    302

Section IV
      Section IV:行为型模式    301

第16章 职责链模式(Chain of Responsibility)
16.1意图、动机、适用性、参与者、结构和示例    304
16.2具有断点的Chain of Responsibility    308
16.3更多分支的链式操作    310
16.4基于配置的动态Chain of Responsibility    313
16.5小结    316
第17章 模版方法模式(Template Method)
17.1意图、动机、适用性、参与者、结构和示例    318
17.2多Template Method    320
17.3基于Delegate的方法Template Method    324
17.4基于Generic的类型Template Method    325
17.5基于配置的动态Template Method    326
17.6小结    327
第18章  解释器模式(Interpreter)
18.1意图、动机、适用性、参与者、结构和示例    330
18.2基于正则表达式的Interpreter    333
18.3基于字典信息的Interpreter    337
18.4 Abstract Interpreter    342
18.5用XSD定制业务语义的Interpreter    343
18.6小结    344
第19章 命令模式(Command)
19.1意图、动机、适用性、参与者、结构和示例    347
19.2用Delegate实现轻量级的Command    350
19.3异步Command机制    352
19.4复合Command    356
19.4.1借助外观模式实现简单封装的复合Command    357
19.4.2借助组合模式实现复合Command    359
19.5 Queued Command    361
19.6小结    362
第20章  迭代器模式(Iterator)
20.1意图、动机、适用性、参与者、结构和示例    365
20.2 C#化的Iterator    367
20.3小结    369
第21章  中介者模式(Mediator)
21.1中介者模式意图、动机、适用性、参与者、结构和示例    373
21.2基于Delegate和事件的松耦合Mediator    378
21.3基于配置的动态Mediator    380
21.4基于SOAP调用的Mediator    382
21.5小结    383
第22章  备忘录模式(Memento)
22.1意图、动机、适用性、参与者、结构和示例    386
22.2栈式备忘录模式    391
22.3 Memento的序列化和持久化    394
22.4小结    397
第23章  观察者模式(Observer)
23.1意图、动机、适用性、参与者、结构和示例    402
23.2 NET内置的Observer机制——事件    406
23.3具有Observer的集合类型    408
23.4面向服务接口的Observer    410
23.5小结    413
第24章 状态模式(State)
24.1意图、动机、适用性、参与者、结构和示例    416
24.2 State的序列化和持久化    420
24.3主动方式State    423
24.4基于Delegate和事件的触发式State    423
24.5涉及用户交互的State    426
24.6用WF完成更易于编排的State    426
24.7小结    428
第25章 策略模式(Strategy)
25.1意图、动机、适用性、参与者、结构和示例    431
25.2 Strategy与Interpreter协作    433
25.3充分利用.NET Framework自带的Strategy接口    434
25.4通过Delegate实现动态Strategy    437
25.5小结    438
第26章 访问者模式(Visitor)
26.1意图、动机、适用性、参与者、结构和示例    440
26.2借助Reflection实现Visitor    445
26.3基于Delegate和事件的松耦合Visitor    447
26.4小结    447

Section V
      Section V:小颗粒度基础模式和应用案例    448

第27章 成例(Idioms)
27.1 Partial Class    449
27.1.1组合    449
27.1.2多个侧面    450
27.1.3与Visual Studio Add-ins的结合    452
27.1.4小结    452
27.2 Gateway    452
27.2.1封装本地API的Gateway    453
27.2.2 Gateway封装非C#语言访问接口    455
27.2.3 Gateway封装通用操作方法    455
27.2.4小结    458
27.3 Mapper    458
27.3.1介绍    458
27.3.2 Data Mapper    461
27.3.3小结    466
27.4 Registry    467
27.4.1小结    471
27.5 Value Object    471
27.6通用数据载体DataSet和DataTable    473
27.7 Context    474
第28章GOF总结以及应用案例(Show Case)
28.1 GOF总结    476
28.1.1回顾GOF    476
28.2应用案例需求说明    476
28.3发现和分析    477
28.4模式应用    480
28.4.1已经采用的模式    480
28.4.2如何实现具体数据源无关    480
28.4.3提供执行前后定制处理的能力    492
28.4.4设计一个结构更加灵活的连接串配置访问机制    494
28.5小结    500

Section VI
     Section VI:部分架构模式    501

第29章MVC模式(MVC)
29.1模式介绍    502
29.2示例    504
29.2.1 M/V/C未分解的示例    504
29.2.2分解M/V/C后的示例    506
29.2.3主动方式M/V/C    509
29.3小结    512
第30章  管道——过滤器模式(Pipeline-Filter)
30.1介绍    515
30.1.1方式1:推方式(Push)    516
30.1.2方式2:拉方式(Pull)    517
30.1.3方式3:推拉混合方式    518
30.1.4方式4:衔接方式    519
30.2示例    520
30.2.1推方式示例    520
30.2.2增加主动方式的Filter    525
30.3小结    527
第31章 出版—预定模式(Pub-Sub)
31.1模式介绍    529
31.1.1面向单一主题的本地观察者模式    530
31.1.2增加Proxy实现面向单一主题的分布式观察者模式    530
31.1.3用出版者集中管理预定    531
31.1.4面向物理环境设计更多出版预定模式    534
31.2示例    535
31.2.1数据实体模型部分    536
31.2.2业务实体模型部分    539
31.2.3具体实体对象部分    542
31.2.4单元测试    546
31.3小结    548
第32章Broker模式(Broker)
32.1模式介绍    551
32.2示例    554
32.3小结    557
第33章 消息总线模式(Message Bus)
33.1模式介绍    561
33.1.1分隔区域条件下的消息总线    563
33.2小结    564

Section VII
     Section VII:部分Web和Web Service模式    565

第34章 页面控制器模式(Page Controller)
34.1介绍    567
34.2示例    567
34.3小结    567
第35章 实现Web服务依赖倒置
35.1  Web Service的模式化特征:    569
35.2 第一层的包装    570
35.3  SOA环境下典型的Web Service开发方式:    573
35.4依赖倒置原则及其Web Service中的应用    573
35.4.1分析    575
35.4.2实现示例    576
35.5 基于WCF的工程化实现    583
35.5.1实现示例    583
35.5.2借助WCF扩展服务的对象化特征    587
35.6 小结    588
第36章Web服务适配器模式(Web Service Adapter)
36.1介绍    560
36.1.1常规情景分析    560
36.1.2连续适配    560
36.1.3实施方式    562
36.2采用标准Web Service类型的示例    563
36.2.1单纯数据XSD适配:    563
36.2.2服务方法兼容性适配:    569
36.2.3其它说明:    571
36.3采用WCF的示例    572
36.3.1用Data Contract定义数据Schema    573
36.3.2定义不同的类型转换方式示例    574
36.4小结    576
第37章Web服务数据传输对象模式(Web Service DTO)
37.1介绍    579
37.1.1 DTO对象    579
37.1.2 DTO与消费者服务的对应关系    579
37.1.3部署设计考虑    581
37.1.4结构    581
37.2示例    582
37.2.1没有DTO对象的情况    583
37.2.2增加DTO对象的情况    585
37.3小结    587
37.4附件:    587
37.4.1实现DTO数据装载的2种方式    587
第38章Web服务事件监控器模式(Web Service Event Monitor)
38.1介绍    590
38.2示例    591
38.3小结    596
第39章Web服务拦截过滤器模式(Web Service Intercepting Filter)
39.1介绍    599
39.1.1实现方式    599
39.1.2 NET平台的实现技术    602
39.2示例    604
39.2.1基于ASP.NET Web Service的IHttpModule方式    604
39.2.2基于WCF自定义拦截方式    606
39.3小结    610
第40章  面向关系数据和XML数据的领域逻辑模式(Domain Logic Pattern)
40.1介绍    612
40.1.1整体逻辑结构    612
40.1.2性能改进    613
40.1.3面向关系数据库的业务服务设计    614
40.1.4面向XML数据的扩展设计    615
40.1.5配置机制设计    615
40.2示例    616
40.2.1示例情景    616
40.2.2测试内容准备    617
40.2.3实际测试过程    618
40.3小结    619
第41章 基于XML的应用建模(XML Based Application Model)
41.1介绍    621
41.1.1更具扩展性的数据模型——XML    621
41.1.2让非结构化数据可以被识别    626
41.1.3应对数据和内容的集成    628
41.1.4新的应用扩展:    630
41.1.5应对语义网络的复杂性    633
41.2小结    634


posted @ 2008-07-07 12:18  蜡笔小王  阅读(1101)  评论(1编辑  收藏  举报