您当前的位置: 首页 > 

phymat.nico

暂无认证

  • 2浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

设计模式-行为-状态

phymat.nico 发布时间:2017-10-07 20:30:45 ,浏览量:2

#pragma once

#ifndef STATE_H 

#define STATE_H 

class State; 

class Context 
{ 
public: 
	Context(State* pState); 
	~Context(); 
	void Request(); 
	void ChangeState(State *pState); 

private: 
	State *m_pState; 
}; 

class State 
{ 
public: 
	virtual ~State(){} 
	virtual void Handle(Context* pContext) = 0; 
}; 

class ConcreateStateA : public State 
{ 
public: 
	void Handle(Context* pContext); 
}; 

class ConcreateStateB : public State 
{ 
public: 
	void Handle(Context* pContext); 
}; 

#endif 
#include "StdAfx.h"
#include "state_impl.h"

#include  

Context::Context(State* pState) 
: m_pState(pState) 
{ 
} 

Context::~Context() 
{ 
	delete m_pState; 
	m_pState = NULL; 
} 

void Context::Request() 
{ 
	if (NULL != m_pState) 
	{ 
		m_pState->Handle(this); 
	}
} 

void Context::ChangeState(State *pState) 
{ 
	if (NULL != m_pState) 
	{ 
		delete m_pState; 
		m_pState = NULL; 
	} 
	m_pState = pState; 
} 

void ConcreateStateA::Handle(Context* pContext) 
{ 
	std::cout             
关注
打赏
1659628745
查看更多评论
0.0519s