首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计形式(c++)笔记之十五(State模式)

2013-10-25 
设计模式(c++)笔记之十五(State模式)一、描述概念:允许一个对象在其内部状态改变时改变它的行为。对象看起来

设计模式(c++)笔记之十五(State模式)
一、描述


      概念:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。


问题:

      每个人、事物在不同的状态下会有不同表现(动作),而一个状态又会在不同的表现下转移到下一个不同的状态(State)。最简单的一个生活中的例子就是:

地铁入口处,如果你放入正确的地铁票,门就会打开让你通过。在出口处也是验票,如果正确你就可以 ok,否则就不让你通过(如果你动作野蛮,或许会有报警(Alarm),:)。 



二、实例








本人的工程目录:


            设计形式(c++)笔记之十五(State模式)


注释:

main(),客户

ILift ,电梯接口

lift,电梯实现类

CLiftState,电梯状态抽象类

CCloseingState,电梯门关闭

COpenningState,电梯门打开

CRunningState,电梯运行

CStoppingState,电梯停止

CContext,电梯的控制面板

说明:CContext保持电梯的状态,并提供操作的接口函数。当函数被调用时,CContext直接调用当前状态的相应函数。由状态的接口函数来确定是否可以执行这个动作,以及修改状态为执行这个动作后的状态。


代码:

电梯接口:ILift类

ILift.h


参考文献:《设计模式之禅》,《GoF_23种设计模式解析》

参考博客:  http://www.cnblogs.com/wanggary/archive/2011/04/21/2024117.html

热点排行