简介:
中文版(PDF)+英文版(PDF+HTM)
本书结合设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。本书适合大学计算机专业的学生、研究生及相关人员参考。
“缺水的海豚”巨推荐!!!
目 录
序言
前言
读者指南
第1章 引言1
1.1 什么是设计模式2
1.2 Smalltalk MVC中的设计模式3
1.3 描述设计模式4
1.4 设计模式的编目5
1.5 组织编目7
1.6 设计模式怎样解决设计问题8
1.6.1 寻找合适的对象8
1.6.2 决定对象的粒度9
1.6.3 指定对象接口9
1.6.4 描述对象的实现10
1.6.5 运用复用机制13
1.6.6 关联运行时刻和编译时刻的结构15
1.6.7 设计应支持变化16
1.7 怎样选择设计模式19
1.8 怎样使用设计模式20
第2章 实例研究:设计一个文档编辑器22
2.1 设计问题23
2.2 文档结构23
2.2.1 递归组合24
2.2.2 图元25
2.2.3 组合模式27
2.3 格式化27
2.3.1 封装格式化算法27
2.3.2 Compositor和Composition27
2.3.3 策略模式29
2.4 修饰用户界面29
2.4.1 透明围栏29
2.4.2 Monoglyph30
2.4.3 Decorator 模式32
2.5 支持多种视感标准32
2.5.1 对象创建的抽象32
2.5.2 工厂类和产品类33
2.5.3 Abstract Factory模式35
2.6 支持多种窗口系统35
2.6.1 我们是否可以使用Abstract Factory模式35
2.6.2 封装实现依赖关系35
2.6.3 Window和WindowImp37
2.6.4 Bridge 模式40
2.7 用户操作40
2.7.1 封装一个请求41
2.7.2 Command 类及其子类41
2.7.3 撤消和重做42
2.7.4 命令历史记录42
2.7.5 Command 模式44
2.8 拼写检查和断字处理44
2.8.1 访问分散的信息44
2.8.2 封装访问和遍历45
2.8.3 Iterator类及其子类46
2.8.4 Iterator模式48
2.8.5 遍历和遍历过程中的动作48
2.8.6 封装分析48
2.8.7 Visitor 类及其子类51
2.8.8 Visitor 模式52
2.9 小结53
第3章 创建型模式54
3.1 Abstract Factory(抽象工厂)—对象创建型模式57
3.2 Builder(生成器)—对象创建型模式63
3.3 Factory Method(工厂方法)—对象创建型模式70
3.4 Prototype(原型)—对象创建型模式87
3.5 Singleton(单件)—对象创建型模式84
3.6 创建型模式的讨论89
第4章 结构型模式91
4.1 Adapter(适配器)—类对象结构型模式92
4.2 Bridge(桥接)—对象结构型模式100
4.3 Composite(组成)—对象结构型模式107
4.4 Decorator(装饰)—对象结构型模式115
4.5 FACADE(外观)—对象结构型模式121
4.6 Flyweight(享元)—对象结构型模式128
4.7 Proxy(代理)—对象结构型模式137
4.8 结构型模式的讨论144
4.8.1 Adapter与Bridge144
4.8.2 Composite、Decorator与Proxy145
第5章 行为模式147
5.1 CHAIN OF RESPONSIBIL ITY(职责链)—对象行为型模式147
5.2 COMMAND(命令)—对象行为型模式154
5.3 INTERPRETER(解释器)—类行为型模式162
5.4 ITERATOR(迭代器)—对象行为型模式171
5.5 MEDIATOR(中介者)—对象行为型模式181
5.6 MEMENTO(备忘录)—对象行为型模式188
5.7 OBSERVER(观察者)—对象行为型模式194
5.8 STATE(状态)—对象行为型模式201
5.9 STRATEGY(策略)—对象行为型模式208
5.10 TEMPLATE METHOD(模板方法)—类行为型模式214
5.11 VISITOR(访问者)—对象行为型模式218
5.12 行为模式的讨论228
5.12 1 封装变化228
5.12.2 对象作为参数228
5.12.3 通信应该被封装还是被分布229
5.12.4 对发送者和接收者解耦229
5.12.5 总结231
第6章 结论232
6.1 设计模式将带来什么232
6.2 一套通用的设计词汇232
6.3 书写文档和学习的辅助手段232
6.4 现有方法的一种补充233
6.5 重构的目标233
6.6 本书简史234
6.7 模式界235
6.8 Alexander 的模式语言235
6.9 软件中的模式236
6.10 邀请参与237
6.11 临别感想237
附录A 词汇表238
附录B 图示符号指南241
附录C 基本类244
参考文献249
gl