命令模式

 

#include <iostream.h>

//命令模式 -----
//通过一个传达者将各种操作传达到具体的实施者
//这种模式中命令包含了实施者或者说命令的操作引起实施者的操作
//这是一种分层结构,上层是命令,下层是实施者
//各种操纵单独生成类并有共同的抽象基类

class RealExe             //真正实施者
{
public:
 RealExe(){}
 virtual ~RealExe(){} 
public:
 virtual void ExeCommand()
 {
  cout << "执行了点火命令" << endl;
 }
};

class Command      //命令由客户发出
{
protected:
 RealExe *realExe;
public:
 Command(){}
 Command(RealExe *realExe)
 {
  this->realExe = realExe;
 }
 virtual ~Command(){}
public:
 virtual void SetRxe(RealExe *realExe)
 {
  this->realExe = realExe;
 }
 virtual void ExeCommand() = 0;
};

class Fire : public Command
{
public:
 Fire(RealExe *real):Command(real){}
 virtual ~Fire(){} 
public:
 virtual void ExeCommand()  //命令执行即是实施者执行  命令->实施者
 {
  this->realExe->ExeCommand();
 }
};

class Transfer      //命令传达者
{
private:
 Command *command;
public:
 Transfer(){}
 virtual ~Transfer(){} 
public:
 void SetCommand(Command *command)  //接收命令
 {
  this->command = command;
 }
 void SendCommand()                 //发送命令
 {
  this->command->ExeCommand();
 }
};

void main()
{
 RealExe *a = new RealExe();            //真正实施者事先存在但客户不须知道它的存在
 Transfer *t = new Transfer();          //传达者事先存在
 Command *com = new Fire(a);            //客户发生命令
 t->SetCommand(com);                    //传达者接收命令
 t->SendCommand();                      //传达者发出命令
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值