文档章节

State模式

Ne0o0
 Ne0o0
发布于 2017/05/03 11:01
字数 134
阅读 12
收藏 0
//State模式
class Context;
class  State 
{
public:
	State(){}
	virtual~State(){}
	virtual void DoAction(Context*  context)=0;
public: 
	virtual void PrintInfo(){printf("State\n");}
};

class Context
{
public:
	Context(){}
	~Context(){}
	void SetState(State *pState){m_pState=(pState);}
	void PrintInfo(){if(m_pState)m_pState->PrintInfo();}
private:
	State* m_pState;
};

class StartState:public State
{
public:
	StartState(){}
	~StartState(){}
public:
	void DoAction(Context* context){context->SetState(this);}
	void PrintInfo(){printf("StartState\n");}
};

class StopState:public State
{
public:
	StopState(){}
	~StopState(){}
public:
	void DoAction(Context* context){context->SetState(this);}
	void PrintInfo(){printf("StopState\n");}
};

//State模式
int _tmain(int argc, _TCHAR* argv[])
{

	Context *pc=new Context;
	State *pStartState=new StartState;
	pStartState->DoAction(pc);
	pc->PrintInfo();

	State *pStopState=new StopState;
	pStopState->DoAction(pc);
	pc->PrintInfo();

	delete pStartState;
	delete pStopState;
	delete pc;

	getchar();
	return 0;
}

© 著作权归作者所有

上一篇: Iterator模式
下一篇: Strategy模式
Ne0o0
粉丝 2
博文 70
码字总数 29011
作品 0
程序员
私信 提问
设计模式--状态模式

状态模式(state): QQ状态模式的特点: 可以通过改变状态获得不同的行为。 你的好友能同时看到你的变化。 示例: 状态模式测试类StateTest.java QQ状态模式的切换类QQContext.java 状态类S...

有钱有爱
2016/04/09
15
0
Java设计模式百例 - 状态模式

> 本文源码见:https://github.com/get-set/get-designpatterns/tree/master/state 状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 我们程...

享学IT
2017/12/27
0
0
主机安全(5)iptables状态检测

什么是状态检测 每个网络连接包括以下信息:源地址、目的地址、源端口和目的端口,叫作套接字对(socket pairs);协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些信息叫作状态(statef...

wbf961127
2017/11/07
0
0
设计模式4——State设计模式

State状态设计模式类似于Switch多路分支功能的开关,State状态模式机制如下: 状态模式UML图如下: State状态设计模式用于改变对象的行为,在代理的生命周期里,随着状态变化从一个目标实现程...

小米米儿小
2013/12/10
0
0
CPU模式(mode)、状态与寄存器

ARM920T的7种工作模式 (1)usr:正常模式 (2)sys:系统 (3)异常模式 und:未定义模式 svc:管理模式 abt:中止模式: 指令预取 数据访问 irq:中断模式 fiq:快中断模式 2种状态 (1)A...

lee_jimmy
2018/04/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

偶遇 JDK 1.8 还未修复的 SecureRandom.getInstance("SHA1PRNG") 之 bug

楼主今天兴高采烈的在部署环境,下载 JDK,打包项目,上传至服务器。 配置 JDK ,打包上传项目楼主就不在这里重复了,读者自行解决哈! 1. 启动项目 java -jar xxxx.jar 令楼主没有想到的是:...

Ryan-瑞恩
7分钟前
1
0
【更新】Stimulsoft Reports v2019.3.1发布,新增对OData v4的支持功能

下载Stimulsoft Report.Ultimate v2019.3.1试用版 集所有报表解决方案于一体的综合性平台 Stimulsoft Reports.Ultimate是集所有报表解决方案于一体的综合性平台,拥有在JavaScript、ASP.NET...

xiaochuachua
7分钟前
0
0
JVM源码分析之javaagent原理完全解读

JVM源码分析之javaagent原理完全解读 概述 本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员,而且agent都是用Java编写的,不需要太多的C/C++编程基础,不过这篇文章里也会讲...

BryceLoski
13分钟前
0
0
git记住密码

git取消记住密码 git config --system --unset credential.helper git记住密码 git config --global credential.helper store...

大灰狼wow
15分钟前
1
0
java 面试知识点笔记(十四)异常体系

问:Error和Exception的区别? ps:Throwable上层是Object Error:程序无法处理的系统错误,编译器不做检查 Exception:程序可以处理的异常,捕获后可能恢复 RuntimeException:不可预知的,...

断风格男丶
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部