目录
第一种 行为模式
第二种 结构性模式
第三种 创建型模式
第一种 行为模式
1.Chaub of Responsibility(责任链)
意图:使多个对象都有机会处理请求。请求沿链传递,直到有一个对象处理这个请求。
适用性: 可处理一个请求的对象集合应被动态指定
在不明确指定接收者的情况下向多个对象中的一个提交请求
2.Command(命令)
意图: 把请求封装为对象,从而使不同的请求参数化;对请求排队或记录请求日志,以及支持撤销操作
适用性:抽象出待执行的动作参数化某对象
在不同的时刻指定、排列和执行请求
支持取消操作
支持修改日志
3.Interpreter(解释器)
意图:定义一个语言的文法表示,并定义成一个解释器
适用性:某一特定类型的问题发生频率很高
文法简单
效率不是一个关键问题
4.Iterator(迭代器)
意图:提供一种方法顺序访问一个聚合对象中的各个元素,且不需暴露对象的内部表示
适用性:访问一个聚合对象的内容且无需暴露内部
5.Mediator(中介者)
意图:用一个中介对象来封装一系列的对象交互
适用性:一组对象的定义良好但是通讯方式复杂且产生的相互依赖关系结构混乱且难以理解
不想生成太多子类
对象难以复用
6.Memento(备忘录)
意图:在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态
适用性:必须保存一个对象在某一个时刻的部分状态,这样以后需要他时才能恢复到先前的状态
7.Observer(观察者)
意图:一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的状态都会收到通知并更新
适用性:当一个模型有两个方面,其中一个依赖另外一个的情况
8.State(状态)
意图:准许一个对象在其内部状态改变时改变他的行为
适用性:一个对象的行为决定他的状态,并且必须在他运行时刻根据状态改变他的行为
9.Strategy(策略)
意图:把对象一个个封装起来,并且使他们可以相互替换。独立于客户而变化
适用性:客户不应该知道数据的情况下
未完待续...