设计模式-命令模式

//   命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及

//   支持可撤销的操作; [8/14/2016 ZOSH];

//   模式特点:一、建立命令队列;二、可以将命令记入日志;三、接收请求的一方可以拒绝;四、添加一个新命令类不影响其它类;





// 烤肉串者
class Barbecuer
{
public:
Barbecuer(void);
~Barbecuer(void);

void BakeMutton()
{
cout<<"烤羊肉串"<<endl;
}

void BakeChickenWing()
{
cout<<"烤鸡翅"<<endl;
}
};

// 抽象命令;
class Command
{
public:
Command(void);
virtual ~Command(void);

Command(Barbecuer *pBarbecuer)
{
m_pBarbecuer = pBarbecuer;
}
virtual void ExcuteCommand() = 0;
protected:
Barbecuer *m_pBarbecuer;
};

#include "Command.h"
#include "Barbecuer.h"

// 烤羊肉串命令;
class BakeMuttonCommand : public Command
{
public:
BakeMuttonCommand(void);
~BakeMuttonCommand(void);


BakeMuttonCommand(Barbecuer *pBarbecuer) : Command(pBarbecuer)
{
}

void ExcuteCommand()
{
if (m_pBarbecuer)
{
m_pBarbecuer->BakeMutton();
}
}
};


#include "Command.h"
#include "Barbecuer.h"


// 烤鸡翅命令;
class BakeChickenWingCommand : public Command
{
public:
BakeChickenWingCommand(void);
~BakeChickenWingCommand(void);

BakeChickenWingCommand(Barbecuer *pBarbecuer) : Command(pBarbecuer)
{
}

void ExcuteCommand()
{
if (m_pBarbecuer)
{
m_pBarbecuer->BakeMutton();
}
}
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值