资源名称:《Java设计模式(第2版)》PDF
内容简介:
《Java设计模式(第2版)》通过一个完整的Java项目对经典著作Design Patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。《Java设计模式(第2版)》创造性地将这些模式分为5大类别,以充分展现各个模式的重要特征,并结合UML类图与对应的Java程序,便于读者更好地理解。全书给出了大量的练习,作为对读者的挑战,以启发思考,督促读者通过实践练习的方式来掌握设计模式。同时,作者又给出了这些练习的参考答案,使读者可以印证比较,找出自己的不足,提高设计技能。
作者简介:
Steven John Metsker是Dominion Digital公司的管理顾问,该公司负责信息技术与商业过程的重新设计。Steven擅长运用面向对象技术构建结构清晰、功能强大的软件系统。他还是Building Parsers with JavaTM、Design Pattern JavaTM Workbook与Design Patterns in C#(皆由Addison-Wesley出版)等著作的作者。
William C. Waker(www.xp123.com)是一名独立软件咨询师、教练和培训讲师,他拥有超过20年的软件开发经验。Bill先后任职于Capital One Financial,DMR Trecom与VTLS。他是Refactoring Workbook与Extreme Programming Explored(皆由Addison-Wesley出版)等著作的作者。
资源目录:
序xv
第1章 绪论1
为何需要模式1
为何需要设计模式2
为何选择Java3
UML3
挑战4
本书的组织4
欢迎来到Oozinoz公司6
小结6
第1部分 接口型模式
第2章 接口型模式介绍8
接口与抽象类8
接口与职责10
小结11
超越普通接口12
第3章 适配器(Adapter)模式13
接口适配13
类与对象适配器17
JTable对数据的适配20
识别适配器24
小结25
第4章 外观(Facade)模式27
外观类、工具类和示例类27
重构到外观模式29
小结38
第5章 合成(Composite)模式39
常规组合39
合成模式中的递归行为40
组合、树与环42
含有环的合成模式47
环的影响50
小结51
第6章 桥接(Bridge)模式52
常规抽象:桥接模式的一种方法52
从抽象到桥接模式54
使用桥接模式的驱动器57
数据库驱动57
小结59
第2部分 职责型模式
第7章 职责型模式介绍62
常规的职责型模式62
根据可见性控制职责64
小结65
超越普通职责65
第8章 单例(Singleton)模式67
单例模式机制67
单例和线程68
识别单例70
小结71
第9章 观察者(Observer)模式72
经典范例:GUI中的观察者模式72
模型/视图/控制器76
维护Observable对象82
小结84
第10章 调停者(Mediator)模式85
经典范例:GUI调停者(Mediator)85
关系一致性中的调停者模式89
小结96
第11章 代理(Proxy)模式97
经典范例:图像代理97
重新思考图片代理102
远程代理104
动态代理109
小结114
第12章 职责链(Chain of Responsibility)模式115
现实中的职责链模式115
重构为职责链模式117
固定职责链119
没有组合结构的职责链模式121
小结121
第13章 享元(Flyweight)模式122
不变性122
抽取享元中不可变的部分123
共享享元125
小结128
第3部分 构造型模式
第14章 构造型模式介绍130
构造函数的挑战130
小结132
超出常规的构造函数132
第15章 构建者(Builder)模式134
常规的构建者134
在约束条件下构建对象137
可容错的构建者139
小结140
第16章 工厂方法(Factory Method)模式141
经典范例:迭代器141
识别工厂方法142
控制要实例化的类143
并行层次结构中的工厂方法模式145
小结147
第17章 抽象工厂(Abstract Factory)模式148
经典范例:图形用户界面工具箱148
抽象工厂和工厂方法153
包和抽象工厂157
小结157
第18章 原型(Prototype)模式158
作为工厂的原型158
利用克隆进行原型化159
小结162
第19章 备忘录(Memento)模式163
经典范例:使用备忘录模式执行撤销操作163
备忘录的持久性170
跨会话的持久性备忘录170
小结174
第4部分 操作型模式
第20章 操作型模式介绍176
操作和方法176
签名177
异常178
算法和多态179
小结180
超越常规的操作181
第21章 模板方法(Template Method)模式182
经典范例:排序182
完成一个算法186
模板方法钩子188
重构为模板方法模式189
小结191
第22章 状态(State)模式193
对状态进行建模193
重构为状态模式197
使状态成为常量201
小结203
第23章 策略(Strategy)模式204
策略建模204
重构到策略模式207
比较策略模式与状态模式211
比较策略模式和模板方法模式211
小结212
第24章 命令(Command)模式213
经典范例:菜单命令213
使用命令模式来提供服务216
命令钩子217
命令模式与其他模式的关系219
小结220
第25章 解释器(Interpreter)模式221
一个解释器示例221
解释器、语言和解析器233
小结234
第5部分 扩展型模式
第26章 扩展型模式介绍236
面向对象设计的原则236
Liskov替换原则237
迪米特法则238
消除代码的坏味道239
超越常规的扩展240
小结241
第27章 装饰器(Decorator)模式242
经典范例:流和输出器242
函数包装器250
装饰器模式和其他设计模式的关系257
小结258
第28章 迭代器(Iterator)模式259
普通的迭代259
线程安全的迭代261
基于合成结构的迭代267
小结277
第29章 访问者(Visitor)模式278
访问者模式机制278
常规的访问者模式280
Visitor环286
访问者模式的危机290
小结292
附录A 指南293
附录B 答案297
附录C Oozinoz源代码366
附录D UML概览369
参考文献375
资源截图: