书籍详情
模式:工程化实现及扩展(设计模式C#版)
作者:王翔,孙逊 著
出版社:电子工业出版社
出版时间:2012-04-01
ISBN:9787121156397
定价:¥59.00
购买这本书可以去
内容简介
设计模式不是一门适合空谈的技术,它来自于开发人员的工程实践又服务于工程实践。《模式:工程化实现及扩展(设计模式C#版)》并不是一本面向入门者的读物,因为它需要结合工程实践介绍如何发现模式灵感、如何应用模式技术。不过作为一本介绍设计模式的书,它并不需要读者对于庞大的.NET Framework有深入了解,因为扩展主要是结合C#语法完成的,配合书中的实例,相信读者不仅能够熟练应用设计模式技术,也能令自己的C#语言上一个台阶。为了降低学习门槛,本书第一部分除了介绍面向对象设计原则外,还充实了一些C#语言的介绍,但这些内容并不是枯燥的讲解,读者可以在阅读中通过一系列动手练习尽快吸收这些理论并将它们内化为自己的技能。本书最后一部分的“GOF综合练习”把各种设计模式做了一次集中展示,目的是让读者把分散的模式知识融合在一起,能够将书本知识真正用于改善一个“准”生产型模块的实现。
作者简介
王翔,软件架构师,主要从事.NET、XML、公钥基础设施的开发。专注于数据(尤其是XML信息)的生产、加工、交换、提炼等过程。近参与了一系列有关应用密码技术和PKI环境保护信息系统数据安全的项目。喜欢数学,平常案头总是摆一本数学练习题。闲暇时间喜欢写作,通过发表多种技术文章与国内外同行交流各种数据应用经验。项目间隙经常到各海滨城市徒步旅行、野外露营、出海航行、极限运动,这几年烹饪也渐渐成为个人主要爱好。
目录
第一篇 预备知识——发掘C#语言的面向对象设计潜力
第1章 面向对象设计原则
1.1 说明
1.2 单一职责原则(SRP)
1.3 里氏替换原则(LSP)和依赖倒置原则(DIP)
1.4 接口隔离原则(ISP)
1.5 迪米特法则(LoD:Law of Demeter、LKP)
1.6 开闭原则(OCP)
1.7 小结
1.8 自我检验
第2章 重新研读C#语言
2.1 说明
2.2 C# 部分语法内容扩展
2.2.1 命名空间(Namespace)
2.2.2 简洁的异步调用机制——委托(Delegate)和事件(Event)
2.2.3 考验算法的抽象能力——泛型(Generics)
2.2.4 用贴“标签”的方式扩展对象特性
2.2.5 可重载运算符(Overloadable Operators)与
转换运算符(Conversion Operators)
2.3 面向插件架构的配置系统设计
2.3.1 认识.NET Framework提供的主要配置实体类
2.3.2 小结
2.3.3 自我检验
2.4 依赖注入
2.4.1 背景介绍
2.4.2 示例情景
2.4.3 构造注入(Constructor)
2.4.4 设值注入(Setter)
2.4.5 接口注入
2.4.6 基于属性的注入方式(Attributer)
2.4.7 小结
2.4.8 自我检验
2.5 连贯接口(Fluent Interface)
第3章 Java和C#
3.1 说明
3.2 枚举(Enum)
3.3 泛型(Generics)
3.4 属性和标注(Attribute and Annotation)
3.5 操作符重载和类型转换重载
3.6 委托、事件、匿名方法
3.7 Lamada和LINQ
3.8 小结
第二篇 创建型模式——管理对象实例的构造过程
第4章 工厂&工厂方法模式
4.1 说明
4.2 简单工厂
4.2.1 最简单的工厂类
4.2.2 简单工厂的局限性
4.3 经典回顾
4.4 解耦工厂类型与客户程序
4.5 基于配置文件的工厂
4.5.1 基于配置文件解耦工厂接口和具体工厂类型
4.5.2 基于配置文件解耦工厂类型和具体工作产品
4.6 典型工程化实现
4.7 小结
4.8 自我检验
第5章 单件模式
5.1 说明
5.2 经典回顾
5.3 线程安全的单件模式
5.4 细节决定成败
5.5 细颗粒度的单件模式
5.5.1 背景讨论
5.5.2 解决桌面应用中细颗粒度单件模式问题
5.5.3 解决Web应用中细颗粒度单件模式问题
5.6 分布式环境下的单件模式
5.7 单件模式的使用问题
5.8 小结
第6章 抽象工厂模式
6.1 说明
6.2 经典回顾
6.3 解决经典模式的硬伤
6.4 基于委托的生产外包
6.5 小结
第7章 创建者模式
7.1 说明
7.2 经典回顾
7.3 为Builder打个标签
7.4 具有装配/卸载能力的Builder
7.5 连贯接口形式的Builder
7.6 小结
7.7 自我检验
第8章 原型模式
8.1 说明
8.2 经典回顾
8.3 表面模仿还是深入模仿
8.3.1 概念
8.3.2 制作实现克隆的工具类型
8.3.3 简单自定义复制过程
8.3.4 细颗粒度自定义复制过程
8.4 小结
8.5 自我检验
第三篇 结构型模式——组织灵活的对象体系
第9章 适配器模式
9.1 说明
9.2 经典回顾
9.3 类型转换符实现适配
9.4 组适配器
9.5 用配置约定适配过程
9.6 面向数据的适配机制
9.7 小结
9.8 自我检验
第10章 桥模式
10.1 说明
10.2 经典回顾
10.3 分解复杂性的多级桥关系
10.4 看着“图纸”造桥
10.5 具有约束关系的桥
10.6 小结
10.7 自我检验
第11章 组合模式
11.1 说明
11.2 经典回顾
11.3 用迭代器遍历组合类型
11.4 适于XML信息的组合模式
11.5 分布式“部分—整体”环境
11.6 小结
11.7 自我检验
第12章 装饰模式
12.1 说明
12.2 经典回顾
12.3 卸载装饰
12.4 通过配置和创建者完成装饰过程
12.5 把装饰类型做成标签
12.5.1 更“彻底”的属性注入
12.5.2 方式1:采用.NET平台自带的AOP机制实现
12.5.3 自定义代理拦截框架方式
12.5.4 进一步分析
12.6 小结
第13章 外观模式
13.1 说明
13.2 经典回顾
13.3 平台、开发语言无关的抽象Facade接口——WSDL
13.4 小结
第14章 享元模式
14.1 说明
14.2 经典回顾
14.3 制订共享计划
14.4 通过委托和队列实现异步享元
14.5 小结
第15章 代理模式
15.1 说明
15.2 经典回顾
15.3 远程代理
15.4 小结
第四篇 行为型模式——算法、控制流的对象化操作
第16章 职责链模式
16.1 说明
16.2 经典回顾
16.3 非链表方式定义职责链
16.4 小结
第17章 模板方法模式
17.1 说明
17.2 经典回顾
17.3 方法的模板——委托
17.4 类和接口的模板——泛型
17.5 系统架构的模板——配置
17.6 小结
17.7 自我检验
第18章 解释器模式
18.1 说明
18.2 经典回顾
18.3 采用正则表达式
18.4 采用字典 5
18.5 多级解释器系统
18.6 用XSD解释自定义业务语言
18.7 小结
18.8 自我检验
第19章 命令模式
19.1 说明
19.2 经典回顾
19.3 打包命令对象
19.4 异步命令操作
19.5 命令操作队列
19.6 小结
19.7 自我检验
第20章 迭代器模式
20.1 说明
20.2 经典回顾
20.3 .NET内置的迭代器
20.4 小结
20.5 自我检验
第21章 中介者模式
21.1 说明
21.2 经典回顾
21.3 基于委托和事件的松耦合中介者
21.4 根据配置动态协调通知关系
21.5 小结
21.6 自我检验
第22章 备忘录模式
22.1 说明
22.2 经典回顾
22.3 把备忘压栈
22.4 备忘录的序列化和持久化
22.4 小结
22.5 自我检验
第23章 观察者模式
23.1 说明
23.2 经典回顾
23.3 .NET内置的观察者机制——事件
23.4 具有观察者机制的集合类型
23.5 面向服务接口的观察者
23.6 小结
23.7 自我检验
第24章 状态模式
24.1 说明
24.2 经典回顾
24.3 状态的序列化和持久化
24.4 主动状态对象
24.5 用WF完成更易于编排的状态模式
24.6 小结
24.7 自我检验
第25章 策略模式
25.1 说明
25.2 经典回顾
25.3 策略模式与解释器模式的协作
25.4 .NET自带的策略接口
25.5 小结
第26章 访问者模式
26.1 说明
26.2 经典回顾
26.3 借助反射或Dynamic实现访问者
26.4 用委托实现工程化的访问者
26.5 小结
26.6 自我检验
第五篇 GOF综合练习
第27章 GOF部分阶段实践
27.1 回顾GOF
27.2 需求的提出
27.3 第一轮技术分析
27.4 第二轮技术分析
27.5 第三轮技术分析
27.6 示例实现
27.7 验证逻辑的有效性
27.8 小结
27.9 后记
附录 Java和C#关键字对照表
第1章 面向对象设计原则
1.1 说明
1.2 单一职责原则(SRP)
1.3 里氏替换原则(LSP)和依赖倒置原则(DIP)
1.4 接口隔离原则(ISP)
1.5 迪米特法则(LoD:Law of Demeter、LKP)
1.6 开闭原则(OCP)
1.7 小结
1.8 自我检验
第2章 重新研读C#语言
2.1 说明
2.2 C# 部分语法内容扩展
2.2.1 命名空间(Namespace)
2.2.2 简洁的异步调用机制——委托(Delegate)和事件(Event)
2.2.3 考验算法的抽象能力——泛型(Generics)
2.2.4 用贴“标签”的方式扩展对象特性
2.2.5 可重载运算符(Overloadable Operators)与
转换运算符(Conversion Operators)
2.3 面向插件架构的配置系统设计
2.3.1 认识.NET Framework提供的主要配置实体类
2.3.2 小结
2.3.3 自我检验
2.4 依赖注入
2.4.1 背景介绍
2.4.2 示例情景
2.4.3 构造注入(Constructor)
2.4.4 设值注入(Setter)
2.4.5 接口注入
2.4.6 基于属性的注入方式(Attributer)
2.4.7 小结
2.4.8 自我检验
2.5 连贯接口(Fluent Interface)
第3章 Java和C#
3.1 说明
3.2 枚举(Enum)
3.3 泛型(Generics)
3.4 属性和标注(Attribute and Annotation)
3.5 操作符重载和类型转换重载
3.6 委托、事件、匿名方法
3.7 Lamada和LINQ
3.8 小结
第二篇 创建型模式——管理对象实例的构造过程
第4章 工厂&工厂方法模式
4.1 说明
4.2 简单工厂
4.2.1 最简单的工厂类
4.2.2 简单工厂的局限性
4.3 经典回顾
4.4 解耦工厂类型与客户程序
4.5 基于配置文件的工厂
4.5.1 基于配置文件解耦工厂接口和具体工厂类型
4.5.2 基于配置文件解耦工厂类型和具体工作产品
4.6 典型工程化实现
4.7 小结
4.8 自我检验
第5章 单件模式
5.1 说明
5.2 经典回顾
5.3 线程安全的单件模式
5.4 细节决定成败
5.5 细颗粒度的单件模式
5.5.1 背景讨论
5.5.2 解决桌面应用中细颗粒度单件模式问题
5.5.3 解决Web应用中细颗粒度单件模式问题
5.6 分布式环境下的单件模式
5.7 单件模式的使用问题
5.8 小结
第6章 抽象工厂模式
6.1 说明
6.2 经典回顾
6.3 解决经典模式的硬伤
6.4 基于委托的生产外包
6.5 小结
第7章 创建者模式
7.1 说明
7.2 经典回顾
7.3 为Builder打个标签
7.4 具有装配/卸载能力的Builder
7.5 连贯接口形式的Builder
7.6 小结
7.7 自我检验
第8章 原型模式
8.1 说明
8.2 经典回顾
8.3 表面模仿还是深入模仿
8.3.1 概念
8.3.2 制作实现克隆的工具类型
8.3.3 简单自定义复制过程
8.3.4 细颗粒度自定义复制过程
8.4 小结
8.5 自我检验
第三篇 结构型模式——组织灵活的对象体系
第9章 适配器模式
9.1 说明
9.2 经典回顾
9.3 类型转换符实现适配
9.4 组适配器
9.5 用配置约定适配过程
9.6 面向数据的适配机制
9.7 小结
9.8 自我检验
第10章 桥模式
10.1 说明
10.2 经典回顾
10.3 分解复杂性的多级桥关系
10.4 看着“图纸”造桥
10.5 具有约束关系的桥
10.6 小结
10.7 自我检验
第11章 组合模式
11.1 说明
11.2 经典回顾
11.3 用迭代器遍历组合类型
11.4 适于XML信息的组合模式
11.5 分布式“部分—整体”环境
11.6 小结
11.7 自我检验
第12章 装饰模式
12.1 说明
12.2 经典回顾
12.3 卸载装饰
12.4 通过配置和创建者完成装饰过程
12.5 把装饰类型做成标签
12.5.1 更“彻底”的属性注入
12.5.2 方式1:采用.NET平台自带的AOP机制实现
12.5.3 自定义代理拦截框架方式
12.5.4 进一步分析
12.6 小结
第13章 外观模式
13.1 说明
13.2 经典回顾
13.3 平台、开发语言无关的抽象Facade接口——WSDL
13.4 小结
第14章 享元模式
14.1 说明
14.2 经典回顾
14.3 制订共享计划
14.4 通过委托和队列实现异步享元
14.5 小结
第15章 代理模式
15.1 说明
15.2 经典回顾
15.3 远程代理
15.4 小结
第四篇 行为型模式——算法、控制流的对象化操作
第16章 职责链模式
16.1 说明
16.2 经典回顾
16.3 非链表方式定义职责链
16.4 小结
第17章 模板方法模式
17.1 说明
17.2 经典回顾
17.3 方法的模板——委托
17.4 类和接口的模板——泛型
17.5 系统架构的模板——配置
17.6 小结
17.7 自我检验
第18章 解释器模式
18.1 说明
18.2 经典回顾
18.3 采用正则表达式
18.4 采用字典 5
18.5 多级解释器系统
18.6 用XSD解释自定义业务语言
18.7 小结
18.8 自我检验
第19章 命令模式
19.1 说明
19.2 经典回顾
19.3 打包命令对象
19.4 异步命令操作
19.5 命令操作队列
19.6 小结
19.7 自我检验
第20章 迭代器模式
20.1 说明
20.2 经典回顾
20.3 .NET内置的迭代器
20.4 小结
20.5 自我检验
第21章 中介者模式
21.1 说明
21.2 经典回顾
21.3 基于委托和事件的松耦合中介者
21.4 根据配置动态协调通知关系
21.5 小结
21.6 自我检验
第22章 备忘录模式
22.1 说明
22.2 经典回顾
22.3 把备忘压栈
22.4 备忘录的序列化和持久化
22.4 小结
22.5 自我检验
第23章 观察者模式
23.1 说明
23.2 经典回顾
23.3 .NET内置的观察者机制——事件
23.4 具有观察者机制的集合类型
23.5 面向服务接口的观察者
23.6 小结
23.7 自我检验
第24章 状态模式
24.1 说明
24.2 经典回顾
24.3 状态的序列化和持久化
24.4 主动状态对象
24.5 用WF完成更易于编排的状态模式
24.6 小结
24.7 自我检验
第25章 策略模式
25.1 说明
25.2 经典回顾
25.3 策略模式与解释器模式的协作
25.4 .NET自带的策略接口
25.5 小结
第26章 访问者模式
26.1 说明
26.2 经典回顾
26.3 借助反射或Dynamic实现访问者
26.4 用委托实现工程化的访问者
26.5 小结
26.6 自我检验
第五篇 GOF综合练习
第27章 GOF部分阶段实践
27.1 回顾GOF
27.2 需求的提出
27.3 第一轮技术分析
27.4 第二轮技术分析
27.5 第三轮技术分析
27.6 示例实现
27.7 验证逻辑的有效性
27.8 小结
27.9 后记
附录 Java和C#关键字对照表
猜您喜欢