- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6命令模式
命令模式
类图:
代码:
#includeiostream
using namespace std;
class Light
{
public:
Light(string s)
{
coutLight On sendl;
}
~Light()
{
}
void on()
{
coutLight Onendl;
}
void off()
{
coutLight Offendl;
}
};
class CeilingFan
{
public:
static const int HIGH = 3;
static const int MEDIUM = 2;
static const int LOW = 1;
static const int OFF = 0;
string location;
int speed;
CeilingFan(string s)
{
location = s;
speed =OFF;
coutCeilingFan On locationendl;
}
~CeilingFan()
{
}
void on()
{
coutCeilingFan Onendl;
}
void off()
{
speed = OFF;
coutCeilingFan Offendl;
}
void high()
{
speed = HIGH;
}
void medium()
{
speed = MEDIUM;
}
void low()
{
speed = LOW;
}
int getSpeed()
{
return speed;
}
};
class GarageDoor
{
public:
GarageDoor(string s)
{
coutGarageDoor On sendl;
}
~GarageDoor()
{
}
void up()
{
coutGarageDoor Upendl;
}
void down()
{
coutGarageDoor downendl;
}
};
class Stereo
{
public:
Stereo(string s)
{
coutStereo On sendl;
}
~Stereo()
{
}
void on()
{
coutStereo Onendl;
}
void off()
{
coutStereo Offendl;
}
void setCD()
{
coutStereo CDendl;
}
void setVolume(int n)
{
coutStereo Volume nendl;
}
};
class Command
{
public:
Command()
{
}
~Command()
{
}
virtual void execute()=0;
virtual void undo()=0;
virtual string getClass()=0;
};
class NoCommand:public Command
{
public:
NoCommand()
{
}
~NoCommand()
{
}
void execute()
{
}
void undo()
{
}
string getClass()
{
}
};
class LightOnCommand:public Command
{
public:
Light* light;
文档评论(0)