状态模式
工作状态-函数版
#include <stdio.h>
static int Hour = 0; // 钟点
static bool WorkFinished = false; // 任务完成标记
static void WriteProgram()
{
if(Hour < 12)
{
printf("当前时间:%d点 上午工作,精神百倍 ",Hour);
}
else if(Hour < 13)
{
printf("当前时间:%d点 饿了,午饭;犯困,午休。 ",Hour);
}
else if(Hour < 17)
{
printf("当前时间:%d点 下午状态还不错,继续努力 ",Hour);
}
else
{
if(WorkFinished)
{
printf("当前时间:%d点 下班回家了 ",Hour);
}
else
{
if(Hour < 21)
{
printf("当前时间:%d点 加班哦,疲累之极 ",Hour);
}
else
{
printf("当前时间:%d点 不行了,睡着了。 ",Hour);
}
}
}
}
int main()
{
Hour = 9;
WriteProgram();
Hour = 10;
WriteProgram();
Hour = 12;
WriteProgram();
Hour = 13;
WriteProgram();
Hour = 14;
WriteProgram();
Hour = 17;
WriteProgram();
WorkFinished = true;
WriteProgram();
Hour = 19;
WriteProgram();
Hour = 22;
WriteProgram();
return 0;
}
“小菜,都学了这么长时间的面向对象开发,你怎么还在写面向过程的代码呀?”
“啊,我习惯性思维了,你意思是说要分一个类出来。”
“这是起码的面向对象思维呀,至少应该有个“工作”类,你的‘写程序’方法是类方法,而‘钟点’、‘任务完成’其实就是类的什么?”
“应该是对外属性,是吧?”
“问什么问,还不快去重写。”
工作状态-分类版
#include <stdio.h>
class Work
{
public:
int Hour; // 钟点
bool WorkFinished; // 任务完成标记
void WriteProgram()
{
if(Hour < 12)
{
printf("当前时间:%d点 上午工作,精神百倍 ",Hour);
}
else if(Hour < 13)
{
printf("当前时间:%d点 饿了,午饭;犯困,午休。 ",Hour);
}
else if(Hour < 17)
{
printf("当前时间:%d点 下午状态还不错,继续努力 ",Hour);
}
else
{
if(WorkFinished)
{
printf("当前时间:%d点 下班回家了 ",Hour);
}
else
{
if(Hour < 21)
{
&
补充:Web开发 , ASP.Net ,