设计模式Java手册

设计模式Java手册
作 者: 麦特思科 龚波 龚波
出版社: 机械工业出版社
丛编项: SUN公司核心技术丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Java
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Steven Johnmetsker 是一位软件开发领域的学者,也是该领域的作家。他的著作多以而向对象技术为主题,旨在帮助开发人员构建出结构清晰能强大的软件。他发表的文章或出版的书籍常涉及:对象模型中的关系完整性,Java逻辑难题的解答,以及对象概念在Plato语言与OO语言中的区别。Steve的另一部著作是《Building Parsers with Java》。

内容简介

设计模式是资深程序员们总结出来的一种可重用的、针对面向对象软件设计的解决方案,而本书借助Java语言为读者讲解了GoF《设计模式》中的全部23种设计模式。在本书中,这23种设计模式被组织成五类,它们分别是:接口型模式、责任型模式、构造型模式、操作型模式以及扩展型模式。本书的五个部分分别讲解了这五类设计模式,以帮助读者领会设计模式的思想及精华,然后再将它们融会贯通、灵活应用到自己的开发过程中。.本书可以作为软件项目管理人员、软件开发工程师等专业人员的指导用书,也可作为高等院校计算机及相关专业学生的参考书。本书透彻讲解了经典的《设计模式:可复用面向对象软件的基础》一书涵盖的23种基本设计模式。本书将这些设计模式分成五类:接口型模式、责任型模式、构造型模式、操作型模式,以及扩展型模式。书中对各个模式进行详细的讲解,并借助UML图例和Java代码来演示这些模式的应用方法,另外还提供了一些实用的例子及有关设计模式的习题、思考题,以启迪读者的思路,使读者在边做边学中提高应用设计模式的实践能力。..本书的后面给出了各章节“自我突破”思考题的参考答案。读者可以先经过思考给出自己的答案,然后再与书后的参考答案作比较,这样读者将能够充分理解设计模式在Java应用程序开发中的角色,并能够提高自己在实际工作中应用设计模式的能力。...

图书目录

第1章 模式概述 1

1.1 为什么使用模式 1

1.2 为什么要应用设计模式 3

1.3 为什么使用Java 4

1.4 为什么使用UML 4

1.5 为什么说本书是一本手册 4

1.6 本书的组织方式 5

1.7 欢迎来到Oozinoz公司 6

1.8 源代码免责声明 6

1.9 小结 6

第一部分 接口型模式

第2章 接口型模式介绍 9

2.1 普通的接口 9

2.2 接口和责任 10

2.3 在接口中加入常量 11

2.4 小结 13

2.5 普通接口无法提供的内容 13

第3章 适配器模式 15

3.1 在适配之前需要深谋远虑 15

3.2 类适配器和对象适配器 18

3.3 无法预料的适配 22

3.4 识别适配器模式 23

3.5 小结 24

第4章 外观模式 25

4.1 重构为外观模式 25

4.2 外观类、工具类以及示例类 33

4.3 小结 34

第5章 组合模式 35

5.1 常见的组合模式 35

5.2 组合模式中的递归特性 36

5.3 图论中的树 37

5.4 含有环的组合对象模型 40

5.5 环状组合对象模型的特点 43

5.6 小结 44

第6章 桥接模式 45

6.1 桥接模式的典型例子:驱动程序 45

6.2 重构为桥接模型 48

6.3 使用List接口的桥接模式 49

6.4 小结 50

第二部分 责任型模式

第7章 介绍责任型模式 55

7.1 普通的责任 55

7.2 通过设置可见性来控制责任 56

7.3 小结 57

7.4 普通责任无法提供的内容 57

第8章 单体模式 59

8.1 单体模式的机制 59

8.2 单体模式与线程 60

8.3 识别单体模式 61

8.4 小结 62

第9章 观察者模式 63

9.1 一个典型的例子:Swing中的观察者模式 63

9.2 模型/视图/控制器 66

9.3 维护Observable类对象 69

9.4 小结 70

第10章 中介者模式 72

10.1 一个典型的例子:GUI中介者 72

10.2 利用中介者模式管理关系完整性 75

10.3 小结 78

第11章 代理模式 79

11.1 一个典型的例子:图像代理 79

11.2 重新审议后的图像代理 82

11.3 远程代理 84

11.4 小结 89

第12章 责任链模式 90

12.1 不同的查询机制 90

12.2 重构为责任链模式 90

12.3 固定责任链 92

12.4 不带组合结构的责任链模式 94

12.5 小结 94

第13章 享元模式 95

13.1 认识享元模式 95

13.2 不变性 95

13.3 提取享元中不可变的部分 96

13.4 共享享元 97

13.5 小结 100

第三部分 构造型模式

第14章 构造型模式介绍 103

14.1 普通的构造 103

14.2 与超类合作 103

14.3 类内部的合作 104

14.4 小结 105

14.5 普通构造无法提供的内容 105

第15章 生成器模式 107

15.1 根据解析器构造对象 107

15.2 根据约束构造对象 108

15.3 根据不完整的信息构造符合约束的对象 110

15.4 小结 111

第16章 工厂方法 112

16.1 识别工厂方法模式 112

16.2 工厂方法模式的一个典型例子:迭代器 113

16.3 决定要实例化的类 114

16.4 并行层次结构中的工厂方法模式 115

16.5 小结 117

第17章 抽象工厂模式 118

17.1 抽象工厂用于构建一系列对象 118

17.2 包和抽象工厂模式 121

17.3 抽象工厂模式和“外观与感觉” 121

17.4 小结 123

第18章 原型模式 124

18.1 作为工厂的原型 124

18.2 利用克隆进行原型化 125

18.3 使用Object.clone( )方法 127

18.4 小结 129

第19章 备忘录模式 131

19.1 备忘录的持久性 131

19.2 应用备忘录模式 131

19.3 跨越会话的持久性备忘录 133

19.4 使用字符串作为备忘录 135

19.5 小结 136

第四部分 操作型模式

第20章 操作型模式介绍 139

20.1 操作、方法和算法 139

20.2 方法的机制 140

20.3 方法中的异常 142

20.4 小结 143

20.5 普通操作无法提供的内容 143

第21章 模板方法模式 144

21.1 模板方法的一个典型例子:排序 144

21.2 完成一个算法 146

21.3 模板方法中的钩子 148

21.4 重构为模板方法 149

21.5 小结 150

第22章 状态模式 151

22.1 对状态建模 151

22.2 重构为状态模式 154

22.3 使状态成为常量 157

22.4 小结 158

第23章 策略模式 159

23.1 对策略建模 159

23.2 重构为策略模式 161

23.3 策略模式和状态模式的比较 165

23.4 策略模式和模板方法模式的比较 165

23.5 小结 165

第24章 命令模式 167

24.1 一个典型的例子:菜单命令 167

24.2 利用命令模式提供服务 169

24.3 命令模式与其他模式的关系 170

24.4 小结 173

第25章 解释器模式 174

25.1 解释器模式的一个例子 174

25.2 解释器、语言以及解析器 181

25.3 小结 182

第五部分 扩展型模式

第26章 扩展型模式介绍 185

26.1 能重用的时候不必扩展 185

26.2 通过派生进行扩展 189

26.3 Liskov替换原则(LSP) 190

26.4 通过委托进行扩展 192

26.5 小结 193

26.6 普通扩展无法提供的内容 194

第27章 装饰器模式 195

27.1 装饰器模式的典型例子:流 195

27.2 函数装饰器 201

27.3 不使用装饰器模式的装饰 209

27.4 小结 211

第28章 迭代器模式 212

28.1 类型安全的集合 212

28.2 对组合类进行迭代 215

28.3 线程安全的迭代器 224

28.4 小结 228

第29章 访问者模式 229

29.1 重构以支持访问者模式 229

29.2 应用访问者模式进行扩展 230

29.3 访问者模式中的循环 234

29.4 有关访问者模式的争论 237

29.5 小结 238

第六部分 附 录

附录A 使用指南 243

附录B “自我突破”参考答案 246

附录C UML概览 308

术语表 313

参考文献 319