如何选择设计模式以及选择设计模式之后如何使用
每个模式的简介在P5 P6
各个模式之间的关系在 P8 图1-1
P8 P9
- 寻找合适的对象 (将系统分解成合适的对象集合)
- 写出问题描述 根据名字动词创建对应的类和操作
- 根据系统的协作和职责分类
- 根据对现实世界进行分析建模
Composite模式引入了统一对待现实世界中并不存在的对象的抽象方法
- 等等其他方法
设计模式也可以帮助确定不太明显的抽象和描述这些抽象的对象
Strategy模式描述了怎么实现可互换的算法族
- 决定对象的粒度
Facade模式描述了如何用对象表示一个完整的子系统
Abstract Factory以及Builder产生那些专门负责生产其他对象的对象 哈啊
Visitor以及Command生成的对象专门负责实现对其他对象或对象组的请求
P16 P17
一些常遇见的问题以及解决方式总览
Q1:显示指定一个类来创建对象
A1:Abstract Factory Factory Method Prototype
Q2:对特殊操作的依赖(写死)
A2:Chain of Resposibility Command
Q3:对硬件和软件平台的依赖
A3:Abstract Factory Bridge
Q4:对对象表示或实现的依赖
A5:Abstract Factory Bridge Memento Proxy
Q5:算法依赖
A5:Builder Iterator Strategy Template Method Visitor
Q6:紧耦合
A6:Abstract Factory Command Facade Mediator Observer Chain of Responsibility
Q7:通过子类扩充功能(有时候一个小小的不一样的需求就搞一个子类)
A7:组合方式 Bridge Chain of Responsibility Composite Decorator Observer Strategy
Q8:不能方便的对类进行修改(比如某些库)
A8:Adapter Decorator Visitor