设计模式-----COMMAND模式
2016-11-28 16:44
375 查看
COMMAND模式是最简单,最优雅的设计模式之一。COMMAND模式的使用范围非常宽广。
COMMAND模式通过对命令的封装接触了系统的逻辑互联关系和实际连接的设备之间的耦合。简单的说就是COMMAND模式可以在让对象调用时不关心调用者,而直接执行命令。
COMMAND的另一个用法是创建和执行事务操作,比如在数据库的表中新建一个记录,我们可以用COMMAND对象验证输入数据库中的数据是否正确,并且执行对数据库的导入。
举个例子:
我们外出需要使用滴滴打的,我们在滴滴APP创建订单,滴滴发布消息通知司机,滴滴司机选择抢单或者忽略,我们并不确定谁将会把我们带往目的地,我们可以撤销订单,更换目的地等操作,但是我们不确定,我们命令的执行者是谁。
实例:
COMMAND模式使得事件之间的耦合得到解除,在系统调用命令是有很重要的意义。
COMMAND模式通过对命令的封装接触了系统的逻辑互联关系和实际连接的设备之间的耦合。简单的说就是COMMAND模式可以在让对象调用时不关心调用者,而直接执行命令。
COMMAND的另一个用法是创建和执行事务操作,比如在数据库的表中新建一个记录,我们可以用COMMAND对象验证输入数据库中的数据是否正确,并且执行对数据库的导入。
举个例子:
我们外出需要使用滴滴打的,我们在滴滴APP创建订单,滴滴发布消息通知司机,滴滴司机选择抢单或者忽略,我们并不确定谁将会把我们带往目的地,我们可以撤销订单,更换目的地等操作,但是我们不确定,我们命令的执行者是谁。
实例:
#include<iostream> #include<vector> using namespace std; class Driver { public: void RushOrder() { cout << "马上到达"; } void IgnoreOrder() { cout << "忽略订单"; } }; class Command { public: Command(Driver* tmp) { driver_ = tmp; } virtual void EexecuteCmd() = 0; protected: Driver* driver_; }; class RushOrderCmd :public Command { public: RushOrderCmd(Driver* tmp) :Command(tmp) {} virtual void EexecuteCmd() { driver_->RushOrder(); } }; class IgnoreOrderCmd :public Command { public: IgnoreOrderCmd(Driver* tmp) :Command(tmp) {} virtual void EexecuteCmd() { driver_->IgnoreOrder(); } }; class Didi { public: void SetCmd(Command* tmp) { com_ = tmp; }; void Notify() { com_->EexecuteCmd(); }; protected: Command* com_; }; int main() { Driver* dri_ = new Driver(); Command* cmd_=new RushOrderCmd(dri_); Command* cmd2_=new IgnoreOrderCmd(dri_); Didi* didi_=new Didi(); didi_->SetCmd(cmd_); didi_->SetCmd(cmd2_); didi_->Notify(); cin.get(); return 0; }
COMMAND模式使得事件之间的耦合得到解除,在系统调用命令是有很重要的意义。
相关文章推荐
- PHP设计模式:命令Command模式
- 常见设计模式的解析和实现(C++)之十四-Command模式
- 设计模式之Command模式(学习笔记)
- Java设计模式-----Command模式 .
- 23中设计模式——Command模式
- 常见设计模式的解析和实现(C++)之十四-Command模式
- 设计模式C++实现-Command模式
- 设计模式----Command模式
- 设计模式系列 - Command模式
- [GoF设计模式]抽象工厂模式和Command模式的C++实现
- 设计模式学习笔记十五——Command模式
- 【设计模式】之 Command模式
- 设计模式简单代码之Command模式(皇帝圣旨篇)
- 设计模式----Command模式
- 设计模式简单代码之Command模式(皇帝圣旨篇)
- 设计模式 command模式
- 设计模式—Command模式
- 设计模式学习笔记(十四)—Command模式
- 设计模式之command模式(看了好多文章,只有这篇让我豁然开朗。)
- 设计模式之command模式