1.记忆方法
创建型:用抽象的方法来建造一个单例的原型
结构型:把适配器按桥接的方式组合起来,用以修饰门面,这样就能享受代理权了
行为型:中介 代表 责任人解释 模板上的策略:访问者可以观察备忘录上的命令和状态。
2.设计模式中类之间的关系
依赖:作为成员方法的参数
关联:作为成员变量,两个独立对象之间有关联,比如父亲和儿子。可以分为双向关联和单向关联。
聚合:作为成员变量,耦合度强于关联,一种包容关系,表示“整体-个体”。比如一个人拥有车和房。
组合:作为成员变量,比聚合的耦合程度更强。表示“整体-部分”的关系,整体负责部分的生命周期,同生共死。表示一个人包含头,四肢,身体等。
继承:继承关系
实现:实现作为接口的子类或者成员变量,但是基类一般为虚拟基类,只定义方法,不实现。
3.23种模式概述
Simple Factory:只有三要素:工厂实现,产品接口,产品实现。并且一般工厂实现使用静态方法。
Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
Builder:
Factory Method:1)使得程序的结构更加清晰,管理更方便 2)对调用者屏蔽具体的产品类 3)降低耦合度。四要素:工厂接口,工厂实现,产品接口,产品实现
Prototype:虚拟构造函数
Singleton:全局静态变量的一个替代策略。
Adapter:让一个类可以象另外一个类一样
Bridge:表示和实现分离
Composite:递归组合结构
Decorator:动态添加职责
Facade:
Flyweight
Proxy
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
State
Strategy
Template Method
Visitor
Momento:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态。包括Originator,memento两个类,这Originator依赖memento,并且都包含相同的状态m_state。
4.分类
- 按照应用分类
- 创建型
- 结构型:结构(类之间的关系)在抽象基类层面确定,实体子类只需要继承这种关系。
- 行为型
- 按照xxx分类
- 接口型:定义一个规则,所有继承它的类都要遵守这个规则。
- 构造型:讨论类和对象的结构,通过继承或组合来实现新的功能
- 扩展型
- 操作型
- 责任型
5. 关键:
- 会有什么样的变化?增加,减少,改变
- 如果不用这种模式的话,会怎样?
- 这种模式是如何达成的?