设计模式-行为模式(读书笔记)
来源:互联网 发布:如何判断数据的优劣 编辑:程序博客网 时间:2024/05/21 22:38
行为模式涉及到算法和对象间职责的分配,行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻划了在运行时难以跟踪的复杂的控制流,将程序员的注意力从控制流转移到对象间的联系方式上来。
职责链(chain of responsibility)
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
Handler:定义一个处理请求的接口,实现后继链
ConcreteHandler:处理它所负责的请求;可访问它的后继者;如果可处理请求就处理,否则将请求转给后继者
命令(command)
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。
Command:声明执行操作的接口
ConcreteCommand:将一个接收者对象绑定于一个动作,调用接收者相应的操作,以实现Execute
Client:创建一个具体命令对象并设定它的接收者
Invoker:要求该命令执行这个请求
Receiver:知道如何实施与执行一个请求相关的操作,任何类都可能作为一个接收者
不好理解哈,再记录下具体的协作过程:
- client创建一个ConcreteCommand对象并指定它的Receiver对象
- 某Invoker对象存储该ConcreteCommand对象
- 该Invoker通过调用Command对象的Execute操作来提交一个请求,若该命令是可撤销的,ConcreteCommand就在执行Execute操作之前存储当前状态以用于取消该命令
- ConcreteCommand对象调用receiver的一些操作以执行该请求
解释器(Interpreter)
给定一个语音,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
AbstractionExpression:声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享
TerminalExpression:实现与文法中的终结符相关联的解释操作;一个句子中的每个终结符需要该类的一个实例
NonterminalExpression:对文法中的每一条规则R::=R1R2...Rm都需要一个NonterminalExpression;为从R1到Rn的每个符号都维护一个AbstractExpression类型的实例变量;为文法中的非终结符实现解释操作,解释一般要递归地调用表示R1到Rn的那些对象的解释操作
Context:包含解释器之外的一些全局信息
迭代器(iterator)
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示
Iterator:迭代器定义访问和遍历元素的接口
ConcreteIterator:具体迭代器实现迭代器接口,对该聚合遍历时跟踪当前位置
Aggregate:聚合定义创建相应迭代器对象的接口
ConcreteAggregate:具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例。ConcreteIterator跟踪聚合中的当前对象,并能够计算出待遍历的后继对象
中介者(mediator)
备忘录(memento)
观察者(observer)
状态(state)
策略(strategy)
模板方法(template method)
访问者(visitor)
- 设计模式-行为模式(读书笔记)
- 行为类模式(读书笔记)
- 设计模式,行为模式(观察者模式)
- 【读书笔记】设计模式第五章:行为型模式
- 【读书笔记】设计模式第6章:行为型模式2
- 行为模式设计模式
- 设计模式-----行为模式
- 设计模式:行为模式
- 设计模式-行为模式
- 设计模式-行为模式
- 设计模式之行为模式(二)
- 设计模式(四) 行为型模式
- 【设计模式】行为型模式(上)
- 【设计模式】行为型模式(下)
- 设计模式(三)--行为式模式
- 设计模式-行为模式
- 设计模式-行为型模式
- 设计模式之行为模式
- ELF文件格式实例解析
- Babelfish+poj+字典树
- 只是打印素数而已
- water(这里都是水题,直到把oj某几面刷完)
- C++11新特性:final和override 子类重写父类方法
- 设计模式-行为模式(读书笔记)
- flv视频封装格式详解
- 【源代码】移动视频通话的JAVA源代码
- SVN服务器搭建
- HDU4920矩阵乘法优化之转置
- liunx 上传word文件生成缩略图
- OJ 排序后去重复
- jQuery Mobile 开发原则
- 【MFC】查找指定路径下的指格式,并放到vector中