<b>计划情势的解析和实现(C++)之十七-State情势</b>[VC/C++编程]
本文“<b>计划情势的解析和实现(C++)之十七-State情势</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
作用:
答应一个对象在其内部状况改变时改变它的行为.
UML构造图:
解析:
State情势主要办理的是在开辟中经常碰到的按照差别的状况需求举行差别的处理操作的问题,而这样的问题,大部份人是采取switch-case语句举行处理的,这样会造成一个问题:分支过量,并且假如加入一个新的状况就需求对本来的代码举行编译.State情势采取了对这些差别的状况举行封装的方法处理这类问题,当状况改变的时刻举行处理然后再切换到另一种状况,也就是说把状况的切换责任交给了具体的状况类去负责.同时,State情势和Strategy情势在图示上有很多类似的地方,需求阐明的是二者的思惟都是一致的,只不过封装的东西差别:State情势封装的是差别的状况,而Stategy情势封装的是差别的算法.
实现:
1)State.h
/**//********************************************************************
created: 2006/08/05
filename: State.h
author: 李创
http://www.cppblog.com/converse/
purpose: State情势的演示代码
*********************************************************************/
#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
以上是“<b>计划情势的解析和实现(C++)之十七-State情势</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |