博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
状态模式
阅读量:5098 次
发布时间:2019-06-13

本文共 1398 字,大约阅读时间需要 4 分钟。

【1】什么是状态模式?不同的状态,不同的行为。或者说,每个状态有着相应的行为。【2】状态模式的代码示例:代码示例:
#include 
#include
using namespace std;class Work;class State;class ForenonnState;class State{public: virtual void writeProgram(Work*) = 0;};class Work{public: int hour; State *current; Work(); void writeProgram() { current->writeProgram(this); }};class EveningState : public State{public: void writeProgram(Work *w) { cout << "当前时间: " << w->hour << "心情很好,在看《明朝那些事儿》,收获很大!" << endl; }};class AfternoonState : public State{public: void writeProgram(Work *w) { if (w->hour < 19) { cout << "当前时间: " << w->hour << "下午午睡后,工作还是精神百倍!" << endl; } else { w->current = new EveningState(); w->writeProgram(); } }};class ForenonnState : public State{public: void writeProgram(Work *w) { if (w->hour < 12) { cout << "当前时间: " << w->hour << "上午工作精神百倍!" << endl; } else { w->current = new AfternoonState(); w->writeProgram(); } }};Work::Work(){ current = new ForenonnState();}int main(){ Work *w = new Work(); w->hour = 21; w->writeProgram(); return 0;}//Reuslt://当前时间: 21心情很好,在看《明朝那些事儿》,收获很大!

http://www.cnblogs.com/Braveliu/p/3946826.html

转载于:https://www.cnblogs.com/leijiangtao/p/4534596.html

你可能感兴趣的文章
ThreadPoolExecutor 源码分析
查看>>
消息队列
查看>>
并发包中的类
查看>>
并发包中的类(二)
查看>>
dva中的一些备忘
查看>>
从零开始搭建react应用
查看>>
一些备忘
查看>>
JavaScript初探 四 (程序结构)
查看>>
JavaScript 正则表达式 初探
查看>>
JavaScript 错误异常
查看>>
System 类初探
查看>>
对象克隆 初探
查看>>
Java 数学操作类
查看>>
Java 对象序列化与反序列化
查看>>
Java 类集初探
查看>>
CSS学习笔记二
查看>>
XSS初探
查看>>
Python复习 一
查看>>
msf中的情报搜集
查看>>
数据抓包分析基础
查看>>