书籍详情
JAVA设计模式
作者:(美)梅特斯克,(美)韦克 著,龚波,赵彩琳,陈蓓 译
出版社:人民邮电出版社
出版时间:2007-03-01
ISBN:9787115156884
定价:¥49.00
购买这本书可以去
内容简介
本书通过最新的Java特征和最佳实践阐释了经典著作《设计模式》中介绍的23种基本设计模式。作者根据自己丰富的编程经验,用实际的Java 5.0程序、清晰的UML图表以及引人入胜的实践讲述了每个模式。书中每章集中讨论一种特定的模式,之后给出一些自我突破题,自我突破题或者启发读者思考,或者要求编写代码来解决某个问题,有助于更深入地理解书中的概念。.本书适合于各层次的Java开发人员阅读。设计模式现在已经成为专业软件开发人员的必备技能。在Java语言中,设计模式更是无所不在。但是,学习和掌握模式并产是一件轻松的事情。..本书是模式先驱John Vlissides主编的“软件模式”丛书之一,是经典著作{设计模式)一书的绝佳配套读物。本书用最新的Java语言特征讲述23种基本设计模式,并且就地取材,通过许多Java特有的模式实现和Java平台本身应用模式的实例进行阐述,还提供了许多富于启发性的练习,有助于增强读者理解和设计模式的能力,并能使读者更深入地掌握Java语言。书中融入了两位作者自身深厚的开发和培训经验。更重要的是,本书反映了业界对设计模式的最新认识,并介绍了相关的新知识,包括UML、重构和单元测试等。...
作者简介
作者:Steven John MetskerSteven John Metsker是世界知名的面向对象技术专家,在设计模式方面造诣颇深。除本书外,他还出版了Building Parsers with Java和Design Patterns in C#等著作,并为许多技术杂志撰写了大量技术文章。
目录
第1章 设计模式介绍 1
1.1 为什么使用模式 1
1.2 为什么使用设计模式 2
1.3 为什么使用Java 2
1.4 UML 3
1.5 自我突破 3
1.6 本书的组织方式 3
1.7 欢迎来到Oozinoz公司 4
1.8 小结 5
第一部分 接口型模式
第2章 接口型模式介绍 8
2.1 接口和抽象类 8
2.2 接口和责任 9
2.3 小结 10
2.4 超越普通接口 10
第3章 Adapter(适配器)模式 11
3.1 接口适配 11
3.2 类和对象适配器 14
3.3 为JTable适配数据 16
3.4 标识适配器 20
3.5 小结 20
第4章 Facade(外观)模式 21
4.1 外观类、工具类和示例类 21
4.2 重构为Facade模式 22
4.3 小结 29
第5章 Composite(组合)模式 30
5.1 常见的组合 30
5.2 Composite模式的递归特性 31
5.3 组合、树和环 32
5.4 含有环的Composite模式 35
5.5 环的影响 38
5.6 小结 39
第6章 Bridge(桥接)模式 40
6.1 经典范例:普通抽象 40
6.2 从抽象到Bridge模式 42
6.3 应用Bridge模式的驱动程序 43
6.4 数据库驱动程序 44
6.5 小结 45
第二部分 责任型模式
第7章 责任型模式介绍 48
7.1 常见的责任型模式 48
7.2 通过可见性属性控制责任 49
7.3 小结 50
7.4 超越普通责任型模式 50
第8章 Singleton(单例)模式 51
8.1 Singleton模式机制 51
8.2 单例和线程 52
8.3 识别单例 53
8.4 小结 54
第9章 Observer(观察者)模式 55
9.1 经典范例:GUI中的Observer模式 55
9.2 模型/视图/控制器 58
9.3 维护Observable类对象 62
9.4 小结 64
第10章 Mediator(中介者)模式 65
10.1 经典范例:GUI的Mediator模式 65
10.2 利用Mediator模式管理关系完整性 68
10.3 小结 73
第11章 Proxy(代理)模式 74
11.1 经典范例:图像代理 74
11.2 重新思考图像代理 78
11.3 远程代理 79
11.4 动态代理 84
11.5 小结 87
第12章 Chain of Responsibility(责任链)模式 88
12.1 常见的责任链 88
12.2 重构为Chain of Responsibility模式 89
12.3 固定责任链 91
12.4 不带组合结构的Chain of
Responsibility模式 92
12.5 小结 93
第13章 Flyweight(享元)模式 94
13.1 不变性 94
13.2 提取享元中不可变的部分 95
13.3 共享享元 96
13.4 小结 99
第三部分 构造型模式
第14章 构造型模式介绍 102
14.1 普通构造的挑战 102
14.2 小结 103
14.3 超越普通构造 103
第15章 Builder(生成器)模式 105
15.1 常见的生成器 105
15.2 根据约束构造对象 107
15.3 根据不完整信息构造符合约束的对象 109
15.4 小结 109
第16章 Factory Method(工厂方法)模式 110
16.1 经典范例:迭代器 110
16.2 识别Factory Method模式 111
16.3 决定要实例化的对象 111
16.4 并行层次结构中的Factory Method模式 112
16.5 小结 114
第17章 Abstract Factory(抽象工厂)模式 115
17.1 经典范例:GUI工具包 115
17.2 抽象工厂和工厂方法 118
17.3 包和抽象工厂 121
17.4 小结 122
第18章 Prototype(原型)模式 123
18.1 作为工厂的原型 123
18.2 利用克隆进行原型化 124
18.3 小结 126
第19章 Memento(备忘录)模式 127
19.1 经典范例:使用备忘录实现撤销操作 127
19.2 备忘录的持久性 132
19.3 跨越会话的持久性备忘录 132
19.4 小结 135
第四部分 操作型模式
第20章 操作型模式介绍 138
20.1 操作和方法 138
20.2 签名 139
20.3 异常 139
20.4 算法和多态性 140
20.5 小结 141
20.6 超越普通操作 141
第21章 Template Method(模板方法)模式 142
21.1 经典范例:排序 142
21.2 完成算法 145
21.3 Template Method模式钩子 147
21.4 重构为Template Method模式 148
21.5 小结 149
第22章 State(状态)模式 150
22.1 状态建模 150
22.2 重构为State模式 153
22.3 使状态成为常量 156
22.4 小结 157
第23章 Strategy(策略)模式 158
23.1 策略建模 158
23.2 重构为Strategy模式 160
23.3 比较Strategy模式和State模式 163
23.4 比较Strategy模式和Template Method模式 164
23.5 小结 164
第24章 Command(命令)模式 165
24.1 经典范例:菜单命令 165
24.2 使用Command模式提供服务 167
24.3 Command模式钩子 168
24.4 Command模式与其他模式的关系 169
24.5 小结 170
第25章 Interpreter(解释器)模式 171
25.1 Interpreter模式范例 171
25.2 解释器、语言和解析器 180
25.3 小结 180
第五部分 扩展型模式
第26章 扩展型模式介绍 184
26.1 面向对象设计原则 184
26.2 Liskov替换原则(LSP) 184
26.3 Demeter法则 185
26.4 消除代码坏味 186
26.5 超越普通的扩展 187
26.6 小结 187
第27章 Decorator(装饰器)模式 188
27.1 经典范例:流和输出器 188
27.2 函数包装器 193
27.3 与其他模式相关的Decorator模式 199
27.4 小结 199
第28章 Iterator(迭代器)模式 200
28.1 常规迭代 200
28.2 线程安全的迭代 201
28.3 对组合结构进行迭代 206
28.3.1 组合枚举器的深度 211
28.3.2 枚举叶节点 212
28.4 小结 213
第29章 Visitor(访问者)模式 214
29.1 Visitor模式机制 214
29.2 常见的Visitor模式 216
29.3 Visitor模式循环 220
29.4 Visitor模式危机 223
29.5 小结 224
第六部分 附录
附录A 指南 226
A.1 从本书中学到更多 226
A.2 理解设计模式的典型范例 226
A.3 在实践中应用设计模式 227
A.4 不断地学习 228
附录B 参考答案 229
B.1 接口型模式介绍(第2章) 229
B.2 Adapter(适配器)模式(第3章) 230
B.3 Façade(外观)模式(第4章) 233
B.4 Composite(组合)模式(第5章) 235
B.5 Bridge(桥接)模式(第6章) 237
B.6 责任型模式介绍(第7章) 239
B.7 Singleton(单例)模式(第8章) 240
B.8 Observer(观察者)模式(第9章) 241
B.9 Mediator(中介者)模式(第10章) 245
B.10 Proxy(代理)模式(第11章) 248
B.11 Chain of Responsibility(责任链)模式(第12章) 249
B.12 Flyweight(享元)模式(第13章) 252
B.13 构造型模式介绍(第14章) 254
B.14 Builder(生成器)模式(第15章) 255
B.15 Factory Method(工厂方法)模式(第16章) 257
B.16 Abstract Factory(抽象工厂)模式(第17章) 260
B.17 Prototype(原型)模式(第18章) 262
B.18 Memento(备忘录)模式(第19章) 264
B.19 操作模式介绍(第20章) 266
B.20 Template Method(模板方法)模式(第21章) 267
B.21 State(状态)模式(第22章) 268
B.22 Strategy(策略)模式(第23章) 270
B.23 Command(命令)模式(第24章) 271
B.24 Interpreter(解释器)模式(第25章) 274
B.25 扩展型模式介绍(第26章) 275
B.26 Decorator(装饰器)模式(第27章) 276
B.27 Iterator(迭代器)模式(第28章) 278
B.28 Visitor(访问者)模式(第29章) 279
附录C Oozinoz源代码 282
C.1 获取和使用源代码 282
C.2 构建Oozinoz源代码 282
C.3 使用JUnit测试代码 282
C.4 自己查找文件 283
C.5 小结 283
附录D UML概览 284
D.1 类 284
D.2 类间关系 285
D.3 接口 286
D.4 对象 287
D.5 状态 288
词汇表 289
参考文献 294
索引 296
设计模式列表 308
1.1 为什么使用模式 1
1.2 为什么使用设计模式 2
1.3 为什么使用Java 2
1.4 UML 3
1.5 自我突破 3
1.6 本书的组织方式 3
1.7 欢迎来到Oozinoz公司 4
1.8 小结 5
第一部分 接口型模式
第2章 接口型模式介绍 8
2.1 接口和抽象类 8
2.2 接口和责任 9
2.3 小结 10
2.4 超越普通接口 10
第3章 Adapter(适配器)模式 11
3.1 接口适配 11
3.2 类和对象适配器 14
3.3 为JTable适配数据 16
3.4 标识适配器 20
3.5 小结 20
第4章 Facade(外观)模式 21
4.1 外观类、工具类和示例类 21
4.2 重构为Facade模式 22
4.3 小结 29
第5章 Composite(组合)模式 30
5.1 常见的组合 30
5.2 Composite模式的递归特性 31
5.3 组合、树和环 32
5.4 含有环的Composite模式 35
5.5 环的影响 38
5.6 小结 39
第6章 Bridge(桥接)模式 40
6.1 经典范例:普通抽象 40
6.2 从抽象到Bridge模式 42
6.3 应用Bridge模式的驱动程序 43
6.4 数据库驱动程序 44
6.5 小结 45
第二部分 责任型模式
第7章 责任型模式介绍 48
7.1 常见的责任型模式 48
7.2 通过可见性属性控制责任 49
7.3 小结 50
7.4 超越普通责任型模式 50
第8章 Singleton(单例)模式 51
8.1 Singleton模式机制 51
8.2 单例和线程 52
8.3 识别单例 53
8.4 小结 54
第9章 Observer(观察者)模式 55
9.1 经典范例:GUI中的Observer模式 55
9.2 模型/视图/控制器 58
9.3 维护Observable类对象 62
9.4 小结 64
第10章 Mediator(中介者)模式 65
10.1 经典范例:GUI的Mediator模式 65
10.2 利用Mediator模式管理关系完整性 68
10.3 小结 73
第11章 Proxy(代理)模式 74
11.1 经典范例:图像代理 74
11.2 重新思考图像代理 78
11.3 远程代理 79
11.4 动态代理 84
11.5 小结 87
第12章 Chain of Responsibility(责任链)模式 88
12.1 常见的责任链 88
12.2 重构为Chain of Responsibility模式 89
12.3 固定责任链 91
12.4 不带组合结构的Chain of
Responsibility模式 92
12.5 小结 93
第13章 Flyweight(享元)模式 94
13.1 不变性 94
13.2 提取享元中不可变的部分 95
13.3 共享享元 96
13.4 小结 99
第三部分 构造型模式
第14章 构造型模式介绍 102
14.1 普通构造的挑战 102
14.2 小结 103
14.3 超越普通构造 103
第15章 Builder(生成器)模式 105
15.1 常见的生成器 105
15.2 根据约束构造对象 107
15.3 根据不完整信息构造符合约束的对象 109
15.4 小结 109
第16章 Factory Method(工厂方法)模式 110
16.1 经典范例:迭代器 110
16.2 识别Factory Method模式 111
16.3 决定要实例化的对象 111
16.4 并行层次结构中的Factory Method模式 112
16.5 小结 114
第17章 Abstract Factory(抽象工厂)模式 115
17.1 经典范例:GUI工具包 115
17.2 抽象工厂和工厂方法 118
17.3 包和抽象工厂 121
17.4 小结 122
第18章 Prototype(原型)模式 123
18.1 作为工厂的原型 123
18.2 利用克隆进行原型化 124
18.3 小结 126
第19章 Memento(备忘录)模式 127
19.1 经典范例:使用备忘录实现撤销操作 127
19.2 备忘录的持久性 132
19.3 跨越会话的持久性备忘录 132
19.4 小结 135
第四部分 操作型模式
第20章 操作型模式介绍 138
20.1 操作和方法 138
20.2 签名 139
20.3 异常 139
20.4 算法和多态性 140
20.5 小结 141
20.6 超越普通操作 141
第21章 Template Method(模板方法)模式 142
21.1 经典范例:排序 142
21.2 完成算法 145
21.3 Template Method模式钩子 147
21.4 重构为Template Method模式 148
21.5 小结 149
第22章 State(状态)模式 150
22.1 状态建模 150
22.2 重构为State模式 153
22.3 使状态成为常量 156
22.4 小结 157
第23章 Strategy(策略)模式 158
23.1 策略建模 158
23.2 重构为Strategy模式 160
23.3 比较Strategy模式和State模式 163
23.4 比较Strategy模式和Template Method模式 164
23.5 小结 164
第24章 Command(命令)模式 165
24.1 经典范例:菜单命令 165
24.2 使用Command模式提供服务 167
24.3 Command模式钩子 168
24.4 Command模式与其他模式的关系 169
24.5 小结 170
第25章 Interpreter(解释器)模式 171
25.1 Interpreter模式范例 171
25.2 解释器、语言和解析器 180
25.3 小结 180
第五部分 扩展型模式
第26章 扩展型模式介绍 184
26.1 面向对象设计原则 184
26.2 Liskov替换原则(LSP) 184
26.3 Demeter法则 185
26.4 消除代码坏味 186
26.5 超越普通的扩展 187
26.6 小结 187
第27章 Decorator(装饰器)模式 188
27.1 经典范例:流和输出器 188
27.2 函数包装器 193
27.3 与其他模式相关的Decorator模式 199
27.4 小结 199
第28章 Iterator(迭代器)模式 200
28.1 常规迭代 200
28.2 线程安全的迭代 201
28.3 对组合结构进行迭代 206
28.3.1 组合枚举器的深度 211
28.3.2 枚举叶节点 212
28.4 小结 213
第29章 Visitor(访问者)模式 214
29.1 Visitor模式机制 214
29.2 常见的Visitor模式 216
29.3 Visitor模式循环 220
29.4 Visitor模式危机 223
29.5 小结 224
第六部分 附录
附录A 指南 226
A.1 从本书中学到更多 226
A.2 理解设计模式的典型范例 226
A.3 在实践中应用设计模式 227
A.4 不断地学习 228
附录B 参考答案 229
B.1 接口型模式介绍(第2章) 229
B.2 Adapter(适配器)模式(第3章) 230
B.3 Façade(外观)模式(第4章) 233
B.4 Composite(组合)模式(第5章) 235
B.5 Bridge(桥接)模式(第6章) 237
B.6 责任型模式介绍(第7章) 239
B.7 Singleton(单例)模式(第8章) 240
B.8 Observer(观察者)模式(第9章) 241
B.9 Mediator(中介者)模式(第10章) 245
B.10 Proxy(代理)模式(第11章) 248
B.11 Chain of Responsibility(责任链)模式(第12章) 249
B.12 Flyweight(享元)模式(第13章) 252
B.13 构造型模式介绍(第14章) 254
B.14 Builder(生成器)模式(第15章) 255
B.15 Factory Method(工厂方法)模式(第16章) 257
B.16 Abstract Factory(抽象工厂)模式(第17章) 260
B.17 Prototype(原型)模式(第18章) 262
B.18 Memento(备忘录)模式(第19章) 264
B.19 操作模式介绍(第20章) 266
B.20 Template Method(模板方法)模式(第21章) 267
B.21 State(状态)模式(第22章) 268
B.22 Strategy(策略)模式(第23章) 270
B.23 Command(命令)模式(第24章) 271
B.24 Interpreter(解释器)模式(第25章) 274
B.25 扩展型模式介绍(第26章) 275
B.26 Decorator(装饰器)模式(第27章) 276
B.27 Iterator(迭代器)模式(第28章) 278
B.28 Visitor(访问者)模式(第29章) 279
附录C Oozinoz源代码 282
C.1 获取和使用源代码 282
C.2 构建Oozinoz源代码 282
C.3 使用JUnit测试代码 282
C.4 自己查找文件 283
C.5 小结 283
附录D UML概览 284
D.1 类 284
D.2 类间关系 285
D.3 接口 286
D.4 对象 287
D.5 状态 288
词汇表 289
参考文献 294
索引 296
设计模式列表 308
猜您喜欢