科技
类型
8.5
豆瓣评分
可以朗读
语音朗读
255千字
字数
2009-01-01
发行日期
展开全部
主编推荐语
本书立意明确,除了告诉你问题的类型与解法,还提供了可以立即演绎的程序代码。
内容简介
本书基于C# 2.0的语法,试图将GOF 23中的模式以一种可工程化的公共库而非Example的方式呈现给读者。内容包括以下7部分。
第1篇主要是概括性的介绍;第2篇创建型模式介绍通过将实例化职责委 托他方对象的办法,隔离客户程序与具体类型实例化的依赖关系,保证客户 程序(或者外部系统)获得期望具体类型实例的、同时不必发生直接的引用 ;第3篇结构型模式的重点在于如何通过灵活的体系组织不同的对象,并在 此基础上完成最为复杂的类型(或者类型系统),而参与组合的各类型之间 始终保持尽量松散的结构关系;第4篇行为型模式关注于应用运行过程中算 法的提供和通信关系的梳理;第5篇主要介绍小颗粒度基础模式和应用案例 ;第6篇主要介绍应用全局的模式化的实现方法,包括现在已经被普遍应用 的N层模式及某些关键性框架产品采用的“微内核”模式;第7篇主要是一些 针对Web和Web Service领域的模式设计技术。
目录
- 版权信息
- 作者访谈录
- 序
- 推荐序1
- 推荐序2
- 序言
- 导读
- 本书的应用背景
- 谁应该读本书
- 阅读本书需要的基础知识
- Example就够了么
- 设计原则
- 约定
- 本书如何组织
- 致谢
- 第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内置的Obschmerver机制——事件
- 22.4 具有Obschmerver的集合类型
- 22.5 面向服务接口的Obschmerver
- 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的应用建模
- 索引
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。