《模式 工程化实现及扩展 设计模式Java版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:王翔,孙逊著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121156380
  • 页数:396 页
图书介绍:本书第一部分除了介绍面向对象设计原则外,还充实了一些Java语言的介绍,但这些内容并不是枯燥的讲解,读者可以在阅读中通过一系列动手练习尽快吸收这些理论并将它们内化为自己的技能。本书最后一部分的“GOF综合练习”把各种设计模式做了一次集中展示,目的是让读者把分散的模式知识融合在一起,能够将书本知识真正用于改善一个“准”生产型模块的实现。

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

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

1.1 说明 3

1.2 单一职责原则(SRP) 4

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

1.4 接口隔离原则(ISP) 7

1.5 迪米特法则(Law of Demeter,LoD) 9

1.6 开闭原则(OCP) 10

1.7 小结 13

1.8 自我检验 14

第2章 重新研读Java语言 15

2.1 说明 16

2.2 Java部分语法内容扩展 16

2.2.1 规划和组织代码——包 16

2.2.2 正式命名的常量契约——枚举 19

2.2.3 考验算法的抽象能力——泛型 20

2.2.4 用贴标签的方式扩展对象特性——标注 26

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

2.4 依赖注入 33

2.4.1 背景介绍 33

2.4.2 示例情景 34

2.4.3 构造注入(Constructor) 36

2.4.4 设值注入(Setter) 36

2.4.5 接口注入 37

2.4.6 小结 38

2.4.7 自我检验 39

2.5 连贯接口(Fluent Interface) 40

2.6 自我检验 41

第3章 Java和C 43

3.1 说明 44

3.2 枚举 44

3.3 泛型 48

3.4 属性和标注 50

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

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

3.7 Lamada和LINQ 56

3.8 小结 61

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

第4章 工厂及工厂方法模式 63

4.1 说明 64

4.2 简单工厂 64

4.2.1 最简单的工厂类 64

4.2.2 简单工厂的局限性 67

4.3 经典回顾 68

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

4.5 基于配置文件的工厂 73

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

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

4.6 批量工厂 77

4.7 典型工程化实现 78

4.8 小结 80

4.9 Java中的典型实现 81

4.10 自我检验 81

第5章 单件模式 82

5.1 说明 83

5.2 经典回顾 84

5.3 枚举方式的单件模式 88

5.4 细节决定成败 89

5.5 线程级单件模式 92

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

5.7 单件模式的使用问题 96

5.8 小结 97

5.9 Java中的典型实现 97

第6章 抽象工厂模式 98

6.1 说明 99

6.2 经典回顾 100

6.3 解决经典模式的硬伤 102

6.4 委托生产外包 105

6.5 小结 109

6.6 Java中的典型实现 110

第7章 创建者模式 111

7.1 说明 112

7.2 经典回顾 113

7.3 为Builder贴个标签 116

7.4 具有装配/卸裁能力的Builder 117

7.5 连贯接口形式的Builder 118

7.6 小结 122

7.7 Java中的典型实现 122

7.8 自我检验 122

第8章 原型模式 123

8.1 说明 124

8.2 经典回顾 124

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

8.3.1 概念 129

8.3.2 “纯手工”实现深层复制 130

8.3.3 制作实现序列化工具类型 133

8.3.4 简单自定义复制过程 135

8.3.5 细颗粒度自定义复制过程 135

8.4 小结 138

8.5 自我检验 138

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

第9章 适配器模式 141

9.1 说明 142

9.2 经典回顾 143

9.3 组适配器 146

9.4 用配置约定适配过程 149

9.5 面向数据的适配机制 151

9.6 小结 154

9.7 Java中的典型实现 154

9.8 自我检验 154

第10章 桥模式 157

10.1 说明 158

10.2 经典回顾 159

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

10.4 具有分支的桥 164

10.5 看着“图纸”造桥 168

10.6 具有约束关系的桥 171

10.7 小结 173

10.8 自我检验 173

第11章 组合模式 175

11.1 说明 176

11.2 经典回顾 177

11.3 适于XML信息的组合模式 183

11.4 分布式“部分—整体”环境 185

11.5 小结 185

11.6 Java中的典型实现 186

11.7 自我检验 186

第12章 装饰模式 187

12.1 说明 188

12.2 经典回顾 188

12.3 卸载装饰 194

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

12.5 Java中的典型实现 197

12.6 小结 198

第13章 外观模式 199

13.1 说明 200

13.2 经典回顾 200

13.3 平台、开发语言无关的抽象外观接口——WSDL 203

13.4 Java中的典型实现 204

13.5 小结 204

第14章 享元模式 205

14.1 说明 206

14.2 经典回顾 206

14.3 枚举享元方式 212

14.4 制订共享计划 214

14.5 通过“委托—代理”关系和队列实现异步享元 214

14.6 小结 214

第15章 代理模式 215

15.1 说明 216

15.2 经典回顾 216

15.3 远程代理 219

15.4 动态代理 220

15.5 Java中的典型实现 223

15.6 小结 224

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

第16章 职责链模式 226

16.1 说明 227

16.2 经典回顾 227

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

16.4 小结 238

16.5 Java中的典型实现 239

第17章 模板方法模式 240

17.1 说明 241

17.2 经典回顾 242

17.3 类和接口的模板——泛型 247

17.4 系统架构的模板——配置 248

17.5 小结 248

17.6 Java中的典型实现 249

17.7 自我检验 249

第18章 解释器模式 250

18.1 说明 251

18.2 经典回顾 252

18.3 采用正则表达式 256

18.4 采用字典 261

18.5 多级解释器系统 266

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

18.7 小结 268

18.8 Java中的典型实现 269

18.9 自我检验 269

第19章 命令模式 270

19.1 说明 271

19.2 经典回顾 272

19.3 打包命令对象 275

19.4 异步命令操作 281

19.5 命令操作队列 284

19.6 小结 284

19.7 Java中的典型实现 285

19.8 自我检验 285

第20章 迭代器模式 286

20.1 说明 287

20.2 经典回顾 288

20.3 Java内置的迭代器 289

20.4 小结 292

20.5 自我检验 292

第21章 中介者模式 293

21.1 说明 294

21.2 经典回顾 295

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

21.4 小结 303

21.5 Java中的典型实现 303

21.6 自我检验 304

第22章 备忘录模式 305

22.1 说明 306

22.2 经典回顾 307

22.3 把备忘压栈 312

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

22.5 小结 318

22.6 Java中的典型实现 319

22.7 自我检验 319

第23章 观察者模式 320

23.1 说明 321

23.2 经典回顾 324

23.3 面向服务接口的观察者 328

23.4 小结 330

23.5 Java中的典型实现 330

23.6 自我检验 331

第24章 状态模式 332

24.1 说明 333

24.2 经典回顾 334

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

24.4 主动状态对象 341

24.5 小结 342

24.6 自我检验 342

第25章 策略模式 343

25.1 说明 344

25.2 经典回顾 345

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

25.4 Java中的典型实现 348

25.5 小结 348

第26章 访问者模式 349

26.1 说明 350

26.2 经典回顾 350

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

26.4 Java中的典型实现 358

26.5 小结 358

26.6 自我检验 359

第五篇 GOF综合练习 360

第27章 GOF部分阶段实践 361

27.1 回顾GOF 362

27.2 需求的提出 363

27.3 第一轮技术分析 364

27.4 第二轮技术分析 365

27.5 第三轮技术分析 367

27.6 示例实现 368

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