模式——工程化实现及扩展
模式——工程化实现及扩展封面图

模式——工程化实现及扩展

王翔, 孙逊, 著

出版社:电子工业出版社

年代:2011

定价:59.0

书籍简介:

模式是一个非常有趣的话题,它是对特定前提下重复出现问题的一个普遍解,它是一种思想,使用得当也会对设计、实施提供帮助,从这个角度看它又是实实在在的生产率。设计模式GOF总结的经典设计模式虽只有23种,但不管是创建型模式、结构型模式还是行为型模式,归根结底都是在寻找软件中可能的变化,并封装这些变化。而学习设计模式,必须经过大量的实战,在实战中提高,在实战中体会如何“活学活用”,这也正是《模式——工程化实现及扩展》这一系列中每一本书的不变宗旨。

书籍目录:

目 录

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

第1章 面向对象设计原则 2

1.1 说明 3

1.2 单一职责原则(SRP) 4

1.3 里氏替换原则(LSP)和依赖倒置原则(DIP) 7

1.4 接口隔离原则(ISP) 8

1.5 迪米特法则(LoD:Law of Demeter、LKP) 9

1.6 开闭原则(OCP) 11

1.7 小结 15

1.8 自我检验 15

第2章 重新研读C#语言 16

2.1 说明 17

2.2 C# 部分语法内容扩展 18

2.2.1 命名空间(Namespace) 18

2.2.2 简洁的异步调用机制——委托(Delegate)和事件(Event) 21

2.2.3 考验算法的抽象能力——泛型(Generics) 29

2.2.4 用贴“标签”的方式扩展对象特性 35

2.2.5 可重载运算符(Overloadable Operators)与

转换运算符(Conversion Operators) 38

2.3 面向插件架构的配置系统设计 41

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

2.3.2 小结 43

2.3.3 自我检验 43

2.4 依赖注入 44

2.4.1 背景介绍 44

2.4.2 示例情景 45

2.4.3 构造注入(Constructor) 47

2.4.4 设值注入(Setter) 48

2.4.5 接口注入 48

2.4.6 基于属性的注入方式(Attributer) 50

2.4.7 小结 52

2.4.8 自我检验 53

2.5 连贯接口(Fluent Interface) 53

第3章 Java和C# 56

3.1 说明 57

3.2 枚举(Enum) 57

3.3 泛型(Generics) 61

3.4 属性和标注(Attribute and Annotation) 63

3.5 操作符重载和类型转换重载 64

3.6 委托、事件、匿名方法 65

3.7 Lamada和LINQ 68

3.8 小结 73

第二篇 创建型模式——管理对象实例的构造过程 74

第4章 工厂&工厂方法模式 75

4.1 说明 76

4.2 简单工厂 76

4.2.1 最简单的工厂类 76

4.2.2 简单工厂的局限性 79

4.3 经典回顾 79

4.4 解耦工厂类型与客户程序 81

4.5 基于配置文件的工厂 83

4.5.1 基于配置文件解耦工厂接口和具体工厂类型 83

4.5.2 基于配置文件解耦工厂类型和具体工作产品 84

4.6 典型工程化实现 86

4.7 小结 89

4.8 自我检验 90

第5章 单件模式 91

5.1 说明 92

5.2 经典回顾 93

5.3 线程安全的单件模式 96

5.4 细节决定成败 98

5.5 细颗粒度的单件模式 99

5.5.1 背景讨论 99

5.5.2 解决桌面应用中细颗粒度单件模式问题 100

5.5.3 解决Web应用中细颗粒度单件模式问题 101

5.6 分布式环境下的单件模式 102

5.7 单件模式的使用问题 105

5.8 小结 105

第6章 抽象工厂模式 106

6.1 说明 107

6.2 经典回顾 108

6.3 解决经典模式的硬伤 110

6.4 基于委托的生产外包 112

6.5 小结 114

第7章 创建者模式 116

7.1 说明 117

7.2 经典回顾 118

7.3 为Builder打个标签 121

7.4 具有装配/卸载能力的Builder 126

7.5 连贯接口形式的Builder 126

7.6 小结 130

7.7 自我检验 130

第8章 原型模式 131

8.1 说明 132

8.2 经典回顾 132

8.3 表面模仿还是深入模仿 136

8.3.1 概念 136

8.3.2 制作实现克隆的工具类型 137

8.3.3 简单自定义复制过程 139

8.3.4 细颗粒度自定义复制过程 140

8.4 小结 142

8.5 自我检验 143

第三篇 结构型模式——组织灵活的对象体系 145

第9章 适配器模式 146

9.1 说明 147

9.2 经典回顾 148

9.3 类型转换符实现适配 151

9.4 组适配器 152

9.5 用配置约定适配过程 154

9.6 面向数据的适配机制 156

9.7 小结 158

9.8 自我检验 158

第10章 桥模式 161

10.1 说明 162

10.2 经典回顾 163

10.3 分解复杂性的多级桥关系 166

10.4 看着“图纸”造桥 171

10.5 具有约束关系的桥 174

10.6 小结 175

10.7 自我检验 176

第11章 组合模式 177

11.1 说明 178

11.2 经典回顾 179

11.3 用迭代器遍历组合类型 183

11.4 适于XML信息的组合模式 185

11.5 分布式“部分—整体”环境 188

11.6 小结 188

11.7 自我检验 189

第12章 装饰模式 190

12.1 说明 191

12.2 经典回顾 192

12.3 卸载装饰 195

12.4 通过配置和创建者完成装饰过程 196

12.5 把装饰类型做成标签 198

12.5.1 更“彻底”的属性注入 198

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

12.5.3 自定义代理拦截框架方式 202

12.5.4 进一步分析 205

12.6 小结 205

第13章 外观模式 207

13.1 说明 208

13.2 经典回顾 208

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

13.4 小结 212

第14章 享元模式 214

14.1 说明 215

14.2 经典回顾 216

14.3 制订共享计划 219

14.4 通过委托和队列实现异步享元 219

14.5 小结 220

第15章 代理模式 221

15.1 说明 222

15.2 经典回顾 222

15.3 远程代理 224

15.4 小结 226

第四篇 行为型模式——算法、控制流的对象化操作 145

第16章 职责链模式 228

16.1 说明 229

16.2 经典回顾 229

16.3 非链表方式定义职责链 233

16.4 小结 237

第17章 模板方法模式 239

17.1 说明 240

17.2 经典回顾 241

17.3 方法的模板——委托 243

17.4 类和接口的模板——泛型 243

17.5 系统架构的模板——配置 244

17.6 小结 245

17.7 自我检验 245

第18章 解释器模式 247

18.1 说明 248

18.2 经典回顾 249

18.3 采用正则表达式 252

18.4 采用字典 255

18.5 多级解释器系统 258

18.6 用XSD解释自定义业务语言 260

18.7 小结 261

18.8 自我检验 261

第19章 命令模式 262

19.1 说明 263

19.2 经典回顾 264

19.3 打包命令对象 266

19.4 异步命令操作 270

19.5 命令操作队列 272

19.6 小结 273

19.7 自我检验 273

第20章 迭代器模式 276

20.1 说明 277

20.2 经典回顾 278

20.3 .NET内置的迭代器 279

20.4 小结 282

20.5 自我检验 282

第21章 中介者模式 283

21.1 说明 284

21.2 经典回顾 285

21.3 基于委托和事件的松耦合中介者 288

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

21.5 小结 292

21.6 自我检验 293

第22章 备忘录模式 294

22.1 说明 295

22.2 经典回顾 296

22.3 把备忘压栈 300

22.4 备忘录的序列化和持久化 302

22.4 小结 305

22.5 自我检验 305

第23章 观察者模式 307

23.1 说明 308

23.2 经典回顾 310

23.3 .NET内置的观察者机制——事件 313

23.4 具有观察者机制的集合类型 315

23.5 面向服务接口的观察者 316

23.6 小结 318

23.7 自我检验 318

第24章 状态模式 320

24.1 说明 321

24.2 经典回顾 322

24.3 状态的序列化和持久化 326

24.4 主动状态对象 328

24.5 用WF完成更易于编排的状态模式 329

24.6 小结 330

24.7 自我检验 330

第25章 策略模式 332

25.1 说明 333

25.2 经典回顾 334

25.3 策略模式与解释器模式的协作 335

25.4 .NET自带的策略接口 337

25.5 小结 338

第26章 访问者模式 339

26.1 说明 340

26.2 经典回顾 340

26.3 借助反射或Dynamic实现访问者 343

26.4 用委托实现工程化的访问者 346

26.5 小结 347

26.6 自我检验 347

第五篇 GOF综合练习 227

第27章 GOF部分阶段实践 350

27.1 回顾GOF 351

27.2 需求的提出 351

27.3 第一轮技术分析 352

27.4 第二轮技术分析 354

27.5 第三轮技术分析 356

27.6 示例实现 357

27.7 验证逻辑的有效性 369

27.8 小结 380

27.9 后记 381

附录 Java和C#关键字对照表 382

内容摘要:

设计模式不是一门适合空谈的技术,它来自于开发人员的工程实践又服务于工程实践。本书并不是一本面向入门者的读物,因为它需要结合工程实践介绍如何发现模式灵感、如何应用模式技术。不过作为一本介绍设计模式的书,它并不需要读者对于庞大的.NET Framework有深入了解,因为扩展主要是结合C#语法完成的,配合书中的实例,相信读者不仅能够熟练应用设计模式技术,也能令自己的C#语言上一个台阶。为了降低学习门槛,本书第一部分除了介绍面向对象设计原则外,还充实了一些C#语言的介绍,但这些内容并不是枯燥的讲解,读者可以在阅读中通过一系列动手练习尽快吸收这些理论并将它们内化为自己的技能。本书最后一部分的“GOF综合练习”把各种设计模式做了一次集中展示,目的是让读者把分散的模式知识融合在一起,能够将书本知识真正用于改善一个“准”生产型模块的实现。【前言/序】 前 言如同每个人都有其个性一样,每种开发语言也有自己的个性。项目中,我们固然可以机械地将一种语言的开发经验套用到另一种语言,但效果不一定好,因为: 语言有自己的短处:用短处去实现不仅费时费力,结果也不理想。 语言有自己的长处:但为了沿用以前的经验削足适履,没有用到语言的精要,结果暴殄天物。相信读者也发现了,用一个语言写Hello World是一回事,写一个应用是一回事,写好一个应用则完全是另一回事,这就是工程化代码和“玩具”代码的区别。教科书上的知识落实到工程上时不能按图索骥,需要考虑开发语言和目标环境,设计模式也不例外。也许读者会觉得本书很多实现方式与《设计模式》介绍的内容不一致,但别忘了《设计模式》一书出版至今已近20年,其间无论是开发语言还是技术平台已经“换了人间”,GOF 23个模式的思想不仅影响着我们,更影响着走在技术前沿的语言设计者、平台设计者。他们也在工作中潜移默化地把模式思想融入自己的工作成果。作为用户,如果我们“推却”别人的盛情,所有事情都从“车轮”做起,多少有点不经济。作为本系列的C#设计模式分册,我试图用最C#的方式将自己对于设计模式的理解呈献给读者,而且实现上务求简洁、直接。结构上,本书分为以下5个部分。 第一部分,预备知识包括面向对象设计原则中“面向类”的部分、C#语言面向对象扩展特性,以及Java和C#语法特性的简单对比。 第二部分,创建型模式主要介绍如何创建对象,如何将客户程序与创建过程的“变化”有效隔离。 第三部分,结构型模式从静态结构出发,分析导致类型结构相互依赖的原因,通过将静态变化因素抽象、封装为独立对象的办法,梳理对象结构关系。 第四部分,行为型模式从动态机制出发,分析导致类型调用过程的依赖因素,通过将调用关系、调用过程抽象、封装为独立对象的办法,削弱调用过程中的耦合关系。 第五部分,GOF综合练习为了便于读者从整体上体会模式化设计思路和实现技巧,这部分通过一个综合性的示例向读者展示如何发现变化、抽象变化、应用模式并最终结合.NET Framework平台特性加以实现的过程。不管读者之前对于模式是否有所尝试,我希望读者不妨浏览一下这章,毕竟模式思想转化为模式设计思路,再转化为模式应用技巧是一个渐进的过程,必须实际动手才会加深印象,然后才可能进一步开阔思路。本章示例设计上变化因素较多,需要三类模式的综合运用,务求能起到抛砖引玉的效果。感谢多年培养、帮助我的领导和同事们,多年富有挑战、共同拼搏的项目经历使我能够完成这本书。感谢我和我妻子共同的父母,您们一直给予我无私的关心和照顾,还教会我学会从生活中发掘无穷的技术灵感。最后,感谢我挚爱的妻子,你给予我直面挑战、战胜挑战的信心和力量。不过,受到开发年限和项目经验的限制,本书在很多地方难免会有疏漏和不足之处,希望能够听到读者的批评和建议。王翔

书籍规格:

书籍详细信息
书名模式——工程化实现及扩展站内查询相似图书
9787121156397
如需购买下载《模式——工程化实现及扩展》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次1版印次1
定价(元)59.0语种简体中文
尺寸26 × 18装帧平装
页数 408 印数

书籍信息归属:

模式——工程化实现及扩展是电子工业出版社于2012.2出版的中图分类号为 TP312 的主题关于 C语言-程序设计 的书籍。