`

Command(命令)---对象行为型模式

 
阅读更多

将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。

命令模式通过将请求本身变成一个对象来使工具箱对象可向未指定的应用对象提出请求。这个对象可被存储并像其他的对象一样被传递。这一模式的关键是一个抽象的Command类,它定义了一个执行操作的接口。其最简单的形式是一个抽象的Execute操作。具体的Command子类将接收者作为其一个实例变量,并实现Execute操作,指定接收者采取的动作。而接收者有执行该请求所需的具体信息。

 

所谓过程语言中的回调函数是指函数先在某处注册,而它将在稍后某个需要的时候被调用。Command模式是回调机制的一个面向对象的替代品。

1、在不同的时刻指定、排列和执行请求。一个Command对象可以有一个与初始请求无关的生存期。如果一个请求的接收者可用一种与地址空间无关的方式表达,那么就可将负责该请求的命令对象传送给另一个不同的进程并在那儿实现该请求。

2、支持取消操作。Command的Execute操作可在实施操作前将状态存储起来,在取消操作时这个状态用来消除该操作的影响。Command接口必须添加一个Unexecute操作,该操作取消上一次Execute调用的效果。执行的命令被存储在一个历史列表中。可通过向后和向前遍历这一列表并分别调用Unexecute和Execute来实现重数不限的“取消”和“重做”。

3、支持修改日志,这样当系统崩溃时,这些修改可以被重做一遍。在Command接口中添加装载操作和存储操作,可以用来保持变动的一个一致的修改日志。从崩溃中恢复的过程包括从磁盘中重新读入记录下来的命令并用Execute操作重新执行它们。

 

调用者与实现者解耦:Command模式将调用操作的对象与知道如何实现该操作的对象解耦。

分享到:
评论

相关推荐

    (行为型模式) Command 命令模式

    C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式

    c++设计模式-行为型模式-命令模式

    c++设计模式-行为型模式-命令模式;qt工程 ;c++简单源码; 命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将...

    C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 (Level 300)

    C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 (Level 300)

    设计模式--可复用面向对象软件的基础

    5.2 COMMAND(命令)——对象行为型模式 5.3 INTERPRETER(解释器)——类行为型模式 5.4 ITERATOR(迭代器)——对象行为型模式 5.5 MEDIATOR(中介者)——对象行为型模式 5.6 MEMENTO(备忘录)——对象行为型...

    C#面向对象设计模式纵横谈\15 行为型模式Command命令模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第15节:行为型模式Command命令模式

    Command命令模式介绍.docx

    Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问题

    设计模式可复用面向对象软件的基础.zip

    5.2 COMMAND(命令)—对象行为型 模式 154 5.3 INTERPRETER(解释器)—类行为型 模式 162 5.4 ITERATOR(迭代器)—对象行为型 模式 171 5.5 MEDIATOR(中介者)—对象行为型 模式 181 5.6 MEMENTO(备忘录)—...

    C#面向对象设计模式纵横谈(视频与源码)

    C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 C#面向对象设计模式纵横谈(16):(行为型模式) Interpreter 解释器模式 C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式 C#...

    设计模式--C++

    5.2 COMMAND(命令)—对象行为型模式 154 5.3 INTERPRETER(解释器)—类行为型模式 162 5.4 ITERATOR(迭代器)—对象行为型模式 171 5.5 MEDIATOR(中介者)—对象行为型模式 181 5.6 MEMENTO(备忘录)—对象...

    命令模式 Command Pattern

    命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。

    命令模式(Command)原理图

    命令模式的核心在于通过命令对象实现调用操作和实现操作的解耦。这种模式通常涉及以下角色: Command:这是一个接口,它声明了执行操作的方法。这个接口是所有具体命令类的基础,确保它们具有统一的执行方法调用...

    设计模式:可复用面向对象软件的基础--详细书签版

    5.2 command(命令)—对象行为型 模式 154 5.3 interpreter(解释器)—类行为型 模式 162 5.4 iterator(迭代器)—对象行为型 模式 171 5.5 mediator(中介者)—对象行为型 模式 181 5.6 memento(备忘...

    设计模式之11个行为型模式

    行为型简介职责链模式(ChainofResponsibility)命令模式(Command)解释器模式(Interpreter)迭代器模式(Iterator)中介者模式(Mediator)备忘录模式(Memento)观察者模式(Observer)状态模式(State)策略模式(Strategy)模板...

    《设计模式可复用面向对象软件的基础》

    行为模式 1475.1 CHAIN OF RESPONSIBIL ITY(职责链)—对象行为型模式 1475.2 COMMAND(命令)—对象行为型模式 1545.3 INTERPRETER(解释器)—类行为型模式 1625.4 ITERATOR(迭代器)—对象行为型模式 1715.5 ...

    软件设计师必读的书-设计模式

    5.2 COMMAND(命令)—对象行为型 模式 154 5.3 INTERPRETER(解释器)—类行为型 模式 162 5.4 ITERATOR(迭代器)—对象行为型 模式 171 5.5 MEDIATOR(中介者)—对象行为型 模式 181 5.6 MEMENTO(备忘录)—...

    设计模式可复用面向对象软件的基础.

    5.2 COMMAND(命令)—对象行为型 模式 154 5.3 INTERPRETER(解释器)—类行为型 模式 162 5.4 ITERATOR(迭代器)—对象行为型 模式 171 5.5 MEDIATOR(中介者)—对象行为型 模式 181 5.6 MEMENTO(备忘录)—...

    设计模式:可复用面向对象软件的基础

    5.2 COMMAND(命令)—对象行为型 模式 154 5.3 INTERPRETER(解释器)—类行为型 模式 162 5.4 ITERATOR(迭代器)—对象行为型 模式 171 5.5 MEDIATOR(中介者)—对象行为型 模式 181 5.6 MEMENTO(备忘录)—...

    《设计模式》中文版(23个设计模式的介绍与运用)

    5.2 COMMAND(命令)—对象行为型 模式 154 5.3 INTERPRETER(解释器)—类行为型 模式 162 5.4 ITERATOR(迭代器)—对象行为型 模式 171 5.5 MEDIATOR(中介者)—对象行为型 模式 181 5.6 MEMENTO(备忘录)—...

    design-pattern-java.pdf

    十一个行为型模式 状态模式-State Pattern 处理对象的多种状态及其相互转换——状态模式(一) 处理对象的多种状态及其相互转换——状态模式(二) 处理对象的多种状态及其相互转换——状态模式(三) 处理对象的...

Global site tag (gtag.js) - Google Analytics