#define __CRT_SECURE_NO_WARNINGS
/*
@作者:莫忘输赢
@时间:
2020/02/20 21:27
@版本:v1
@状态模式
@作用:
根据不同的状态做相应的事情
*/
#include<iostream>
//#include<vld.h>
class Work;
class ForenoonState;
class NoonState;
class State
{
public:
virtual void WriteProgram(Work *w) = 0;
};
class Work
{
private:
State* current;
public:
double hour;
public:
Work() {};
void SetState(State *temp)
{
current = temp;
}
void WriteProgram()
{
current->WriteProgram(this);
}
};
class ForenoonState : public State
{
public:
virtual void WriteProgram(Work *w)
{
if ((w->hour) < 12)
{
std::cout << "现在精神无敌好,写程序" << std::endl;
}
else
{
}
}
};
class NoonState : public State
{
public:
virtual void WriteProgram(Work *w)
{
if ((w->hour) < 12)
{
}
else
{
std::cout << "不行了,该睡觉了" << std::endl;
}
}
};
int main(int argc, char **argv)
{
Work *myWork = new Work();
ForenoonState * fState = new ForenoonState();
NoonState *nState = new NoonState();
myWork->hour = 9;
fState->WriteProgram(myWork);
myWork->hour = 23;
nState->WriteProgram(myWork);
delete nState;
delete fState;
delete myWork;
return 0;
}
设计模式总篇-状态模式
猜你喜欢
转载自blog.csdn.net/wjl18270365476/article/details/104419029
今日推荐
周排行