万本电子书0元读

万本电子书0元读

顶部广告

设计模式——基于C#的工程化实现及扩展电子书

  专家推荐   本书立意明确,除了告诉你问题的类型与解法,还提供了可以立即演绎的程序代码,相信这本案头的工具书可以提供你一个不错的思维模式,帮你造就有弹性、能扩充、易维护的软件实体。      胡百敬 微软MVP,台湾恒逸资讯资深讲师,“数据库铁人”   作者从GOF23种经典设计模式始,带你走模式的失门,小到细粒度的基础模式,大到粗粒度的架构模式,本书都做了详尽的讲解。如果您还在为了软件需求的无尽变化而烦恼不断,为了在软件设计领域更上一层楼而苦苦思索,希望本书能够带给您一些启发。

售       价:¥

纸质售价:¥77.40购买纸书

132人正在读 | 0人评论 6.2

作       者:王翔

出  版  社:电子工业出版社

出版时间:2009-01-01

字       数:24.8万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书基于C# 2.0的语法,试图将GOF 23中的模式以一种可工程化的公共库而非Example的方式呈现给读者。内容包括以下7部分。 第1篇主要是概括性的介绍;第2篇创建型模式介绍通过将实例化职责委托他方对象的办法,隔离客户程序与具体类型实例化的依赖关系,保证客户程序(或者外部系统)获得期望具体类型实例的、同时不必发生直的引用;第3篇结构型模式的重在于如何通过灵活的体系组织不同的对象,并在此基础上完成更为复杂的类型(或者类型系统),而参与组合的各类型之间始终保持尽量松散的结构关系;第4篇行为型模式关注于应用运行过程中算法的提供和通信关系的梳理;第5篇主要介绍小颗粒度基础模式和应用案例;第6篇主要介绍应用全局的模式化的实现方法,包括现在已经被普遍应用的N层模式及某些关键性框架产品采用的“微内核”模式;第7篇主要是一些针对Web和Web Service领域的模式设计技术。 本书主要针对对C#语言和.NET Framework平台有一定了解或有一定应用经验的用户,尤其适于那些希望运用模式技术在设计和发方面多应对些挑战的用户。<br/>【推荐语】<br/>专家推荐 本书立意明确,除了告诉你问题的类型与解法,还提供了可以立即演绎的程序代码,相信这本案头的工具书可以提供你一个不错的思维模式,帮你造就有弹性、能扩充、易维护的软件实体。 胡百敬 微软MVP,台湾恒逸资讯资深讲师,“数据库铁人” 作者从GOF23种经典设计模式始,带你走模式的失门,小到细粒度的基础模式,大到粗粒度的架构模式,本书都做了详尽的讲解。如果您还在为了软件需求的无尽变化而烦恼不断,为了在软件设计领域更上一层楼而苦苦思索,希望本书能够带给您一些启发。 李会军 微软MVP,博客园专家,IT168专栏作者 本书很有特色的地方,就是以工程角度来阐释模式,相较纯粹的模式之说,则更具普遍的下手角度,C≠语言的高级特性结合设计模式的经典思想,两者相得益彰。 王涛 微软MVP,博客园专家,《你必须知道的.NET》作者<br/>【作者】<br/>王翔,软件架构师,主要从事.NET、XML、公钥基础设施的发。专注于数据(尤其是XML信息)的生产、加工、交换、提炼等过程。近参与了一系列有关应用密码技术和PKI环境保护信息系统数据安全的项目。 喜欢数学,平常案头总是摆一本数学练习题。闲暇时间喜欢写作,<br/>
目录展开

版权

作者

联系博文视点

推荐序1

推荐序2

序言

导读

第1篇 预备知识——发掘用C#语言进行面向对象化设计的潜力

第1章 重新研读C#语言

1.1 说明

1.2 C#部分语法内容扩展

1.2.1 命名空间(Namespace)

1.2.2 简洁的异步通知机制——委托(Delegate)

1.2.3 考验你的算法抽象能力——泛型(Generics)

1.2.4 用作标签的方式扩展对象特性——属性(Attribute)

1.2.5 用索引器简化的C#类型信息访问

1.2.6 融入C#语言的迭代机制——迭代器(Iterator)

1.3 可重载运算符(Overloadable Operators)与转换运算符(Conversion Operators)

1.3.1 The Day After Someday

1.3.2 用于有限的状态迭代

1.3.3 操作集合

1.3.4 类型的适配

1.3.5 小结

1.4 面向插件架构和现场部署的配置系统设计

1.4.1 认识.NET Framework提供的主要配置实体类

1.4.2 应用实例

1.4.3 小结

1.5 实现依赖注入

1.5.1 背景介绍

1.5.2 示例情景

1.5.3 Constructor注入

1.5.4 Setter注入

1.5.5 接口注入

1.5.6 基于Attribute实现注入——Attributer

1.5.7 小结

第2章 开始每个设计模式之前

2.1 new()的替代品

2.2 准备一个轻量的内存Cache

2.3 准备一个集中访问配置文件的Broker

2.4 Web?Not Web?

2.5 小结

第2篇 创建型模式——管理并隔离对象实例的构造过程

第3章 工厂&工厂方法模式

3.1 简单工厂

3.1.1 最简单的工厂类

3.1.2 根据规格加工产品——参数化工厂

3.1.3 简单工厂的局限性

3.2 经典回顾

3.3 解耦Concrete Factory与客户程序

3.4 基于配置文件的Factory

3.5 批量工厂

3.5.1 开发情景

3.5.2 定义产品类型容器

3.5.3 定义批量工厂和产品类型容器

3.5.4 增设生产指导顾问——Director

3.5.5 由Director指导的客户程序

3.6 基于类型参数的Generic Factory

3.7 委托工厂类型

3.8 小结

第4章 单件模式

4.1 经典回顾

4.2 线程安全的Singleton

4.3 细节决定成败

4.4 细颗粒度Singleton

4.4.1 背景讨论

4.4.2 解决桌面应用中细颗粒度Singleton问题

4.4.3 解决Web应用中细颗粒度Singleton问题

4.4.4 更通用的细颗粒度Singleton

4.5 自动更新的Singleton

4.6 参数化的Singleton

4.7 跨进程的Singleton

4.8 Singleton的扩展——Singleton-N

4.8.1 定义具有执行状态的抽象对象

4.8.2 定义相应的Singleton-N实例集合

4.8.3 在基本Singleton模式实现的框架下引入实例集合

4.9 引入配置文件管理Singleton

4.10 基于类型参数的Generic Singleton

4.11 由工厂类型协助Singleton实例管理

4.12 小结

第5章 抽象工厂模式

5.1 经典回顾

5.2 按计划实施生产

5.2.1 为抽象工厂补充类型映射器

5.2.2 处理模式的硬伤

5.3 定义计划与生产间的映射关系

5.3.1 分析

5.3.2 登记映射关系

5.3.3 用TypeMapper协助工厂生产

5.3.4 定义实体TypeMapper和实体工厂

5.3.5 实现装配机制

5.4 配置生产计划

5.5 基于Delegate的生产外包

5.6 小结

第6章 创建者模式

6.1 经典回顾

6.2 异步调用的BuildUp()

6.3 为Builder打个标签

6.3.1 完成工具类

6.4 具有装配/卸裁能力的Builder

6.5 看着图纸加工——登记配置文件

6.5.1 把UML的对象变成XSD

6.5.2 把握梗概——删除不经常变化的内容

6.5.3 映射为配置节点或配置元素

6.5.4 实现实体对象

6.5.5 完成流水线生产

6.6 用迭代器控制流水线

6.7 小结

第7章 原型模式

7.1 经典回顾

7.2 表面模仿还是深入模仿

7.2.1 概念

7.2.2 制作实现克隆的工具类型

7.2.3 克隆也要稍微保留点个性

7.2.4 定制并管理的克隆过程

7.3 重新定义原型方法

7.4 同时支持XML和二进制序列化的泛型集合类型处理

7.5 小结

第3篇 结构型模式——针对变化组织灵活的对象体系

第8章 适配器模式

8.1 说明

8.2 经典回顾

8.3 进一步扩展适配范围的组适配器

8.4 Adapter——Adapter互联模式

8.4.1 分析

8.4.2 方式1:客户程序直接调度Adapter

8.4.3 方式2:基于标准约定调度Adapter

8.4.4 方式3:借助反射和约定完成异步调用

8.5 用配置约定适配过程

8.6 XML数据的专用适配机制

8.7 小结

第9章 桥模式

9.1 说明

9.2 经典回顾

9.3 将复杂性进一步分解后的多级桥关系

9.4 看着“图纸”造桥

9.5 具有约束关系的桥

9.6 小结

第10章 组合模式

10.1 说明

10.2 经典回顾

10.3 用迭代器遍历组合类型

10.4 适于XML信息的组合模式

10.5 小结

第11章 装饰模式

11.1 说明

11.2 经典回顾

11.3 具有自我更新特征的装饰模式

11.3.1 分析

11.3.2 抽象装饰接口

11.3.3 抽象状态接口

11.3.4 依据当前状态修改装饰

11.3.5 测试验证

11.4 设计Decorator与Builder协作的产物

11.5 把Decorator做成标签

11.5.1 更“彻底”的Attribute注入

11.5.2 方式1:采用.NET平台自带的AOP机制实现

11.5.3 方式2:自定义代理拦截框架方式

11.5.4 进一步分析

11.6 小结

第12章 外观模式

12.1 说明

12.2 经典回顾

12.3 Facade接口

12.4 Remote Facade

12.5 面向性能考虑的升级版Remote Facade——Data Transfer Object模式

12.6 平台、开发语言无关的抽象Facade接口——WSDL

12.7 让使用者更加方便的Fluent Interface设计

12.8 小结

第13章 享元模式

13.1 说明

13.2 经典回顾

13.3 制订共享计划

13.4 综合性的共享体系——Object Pool

13.4.1 应用背景

13.4.2 总体技术结构

13.4.3 抽象类型实体设计

13.4.4 享元模式的典型应用——缓冲

13.4.5 示例

13.5 用于并行处理的线程级享元

13.6 通过Delegate和队列实现异步Flyweight

13.7 小结

第14章 代理模式

14.1 说明

14.2 经典回顾

14.3 远程访问代理

14.3.1 第1步:定义远程访问的服务协议

14.3.2 第2步:定义服务端的配置文件及相应的宿主程序

14.3.3 第3步:生成客户端远程代理(Proxy)类型

14.3.4 第4步:编写客户端程序

14.4 数据访问代理

14.5 对象缓存代理

14.6 为代理过程增加预处理和后续处理的支持

14.6.1 第1步:定义外部处理机制的抽象结构

14.6.2 第2步:定义新增处理的配置信息

14.6.3 第3步:定义配置解析对象

14.6.4 第4步:修正服务端和代理类的处理过程

14.7 小结

第4篇 行为型模式——算法、控制流和通信关系的对象化处理

第15章 职责链模式

15.1 说明

15.2 经典回顾

15.3 用断点控制链式过程

15.4 链式反应

15.5 增加配置约束

15.6 小结

第16章 模板方法模式

16.1 说明

16.2 经典回顾

16.3 满足多套模板要求

16.4 方法的模板——Delegate

16.5 类型的模板——Generic

16.6 用配置勾勒的模板

16.7 小结

第17章 解释器模式

17.1 说明

17.2 经典回顾

17.3 采用正则表达式

17.4 采用字典

17.5 采用XSD

17.6 用XSD解释定制的业务语言

17.7 小结

第18章 命令模式

18.1 说明

18.2 经典回顾

18.3 轻量级的Command——委托

18.4 异步Command

18.5 把Command打包

18.5.1 外观模式方式

18.5.2 组合模式方式

18.6 把Command排队

18.7 小结

第19章 迭代器模式

19.1 说明

19.2 经典回顾

19.3 C#化的Iterator

19.4 小结

第20章 中介者模式

20.1 说明

20.2 经典回顾

20.3 基于Delegate和事件的松耦合Mediator

20.4 根据配置动态协调通知关系

20.5 SOAP Mediator

20.6 小结

第21章 备忘录模式

21.1 说明

21.2 经典回顾

21.3 把备忘压栈

21.4 Memento的序列化和持久化

21.5 小结

第22章 观察者模式

22.1 说明

22.2 经典回顾

22.3.NET内置的Observer机制——事件

22.4 具有Observer的集合类型

22.5 面向服务接口的Observer

22.6 小结

第23章 状态模式

23.1 说明

23.2 经典回顾

23.3 State的序列化和持久化

23.4 主动方式State

23.5 触发式State

23.6 涉及用户交互的状态流转

23.7 用WF完成更易于编排的State

23.8 小结

第24章 策略模式

24.1 说明

24.2 经典回顾

24.3 Strategy与Interpreter协作

24.4 充分利用.NET Framework自带的Strategy接口

24.5 动态策略

24.6 小结

第25章 访问者模式

25.1 说明

25.2 经典回顾

25.3 借助反射实现Visitor

25.4 用委托使引用关系更加松散

25.5 小结

第5篇 小颗粒度基础模式和应用案例——服务于细节的基础性模式

第26章 成例

26.1 说明

26.2 Partial Class

26.2.1 体现组合关系

26.2.2 从多个侧面刻画类型

26.2.3 与Visual Studio Add-ins的结合

26.2.4 小结

26.3 Gateway

26.3.1 封装本地API的Gateway

26.3.2 封装非C#语言访问接口

26.3.3 封装通用操作方法

26.3.4 小结

26.4 Mapper

26.4.1 介绍

26.4.2 数据对象映射器

26.4.3 小结

26.5 Registry

26.6 Value Object

26.7 通用数据载体DataSet和DataTable

26.8 Context

第27章 GOF总结及应用案例

27.1 GOF总结

27.1.1 回顾GOF

27.2 应用案例需求说明

27.3 发现和分析

27.4 模式应用

27.4.1 已经采用的模式

27.4.2 如何实现与具体数据源无关

27.4.3 提供执行前后定制处理的能力

27.4.4 设计一个结构更加灵活的连接串配置访问机制

27.5 小结

第6篇 部分架构模式——面向应用全局的模式化处理

第28章 MVC模式

28.1 说明

28.2 模式介绍

28.3 示例

28.3.1 混合方式

28.3.2 分解对象职责

28.3.3 主动方式M/V/C

28.4 小结

第29章 管道—过滤器模式

29.1 说明

29.2 登机的管道流程

29.2.1 数据源发起的推方式

29.2.2 数据接收方发起的拉方式

29.2.3 中介对象发起的推拉混合方式

29.2.4 数据源/数据接收方分别发起的衔接方式

29.3 示例

29.3.1 推方式示例

29.3.2 增加主动方式的Filter

29.4 小结

第30章 出版—预订模式

30.1 说明

30.2 生活中无处不在的“预订”

30.2.1 面向单一主题的本地观察者模式

30.2.2 增加Proxy实现面向单一主题的分布式观察者模式

30.2.3 用出版者集中管理预订

30.2.4 面向物理环境设计更多出版预订模式

30.3 示例

30.3.1 数据实体模型部分

30.3.2 业务实体模型部分

30.3.3 具体实体对象部分

30.3.4 单元测试

30.4 小结

第31章 Broker模式

31.1 说明

31.2 越来越庞杂的分布式系统交互之感

31.3 示例

31.4 小结

第32章 消息总线模式

32.1 说明

32.2 用总线梳理企业系统环境

32.2.1 分隔区域条件下的消息总线

32.3 小结

第7篇 部分Web和Web Service模式——面向服务开发中的模式化处理

第33章 页面控制器模式

33.1 说明

33.2 用对象化思维抽象和扩展页面操作逻辑

33.3 示例

33.4 小结

第34章 实现Web服务依赖倒置

34.1 Web Service的模式化特征

34.2 第一层的包装

34.2.1 Aggregation

34.2.2 Contain

34.3 SOA环境下典型的Web Service开发方式

34.4 依赖倒置原则及其在Web Service中的应用

34.4.1 分析

34.4.2 实现示例

34.5 基于WCF的工程化实现

34.5.1 实现示例

34.5.2 借助WCF扩展服务的对象化特征

34.6 小结

第35章 Web服务适配器模式

35.1 说明

35.2 Web Service下的接口适配问题

35.2.1 常规情景分析

35.2.2 Web Service间连续交互适配

35.2.3 实施方式

35.3 采用标准Web Service类型的示例

35.3.1 单纯数据XSD适配

35.3.2 服务方法兼容性适配

35.3.3 其他说明

35.4 采用WCF的示例

35.4.1 用Data Contract定义数据Schema

35.4.2 定义不同的类型转换方式示例

35.5 小结

第36章 Web服务数据传输对象模式

36.1 说明

36.2 Web Service接口批量交互中的性能问题

36.2.1 DTO对象

36.2.2 DTO与消费者服务的对应关系

36.2.3 部署设计考虑

36.2.4 结构

36.3 示例

36.3.1 没有DTO对象的情况

36.3.2 增加DTO对象的情况

36.4 小结

36.5 附件

36.5.1 实现DTO数据装载的两种方式

第37章 Web服务事件监控器模式

37.1 说明

37.2 如何为普通Web Service封装事件机制

37.3 示例

37.4 小结

第38章 Web服务拦截过滤器模式

38.1 说明

38.2 通过拦截完成自定义特性的透明扩展

38.2.1 实现方式

38.2.2.NET平台的实现技术

38.3 示例

38.3.1 基于ASP.NET Web Service的IHttpModule方式

38.3.2 基于WCF自定义拦截方式

38.4 小结

附录A 面向关系数据和XML数据的领域逻辑模式

附录B 基于XML的应用建模

索引

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部