状态模式

什么是状态:

“发工资了,我的状态不错,今天上班勤奋,没钱了,我的状态不好,今天上班摸鱼” 。现实生活中,常用状态来表示:同一对象,不同生命周期,对于相同的事件,有不同的响应。我们常用有限状态机对对象进行建模。

有限状态机具体描述
状态模式

有限状态机的实现

状态模式
对于FSM(有限状态机)有多种实现的方法,
整理:状态机的C语言编程
下面是基于状态表的FSM实现
C语言状态机模块实现
在本文中主要介绍FSM的状态模式实现

状态模式的实现

状态模式是将状态与其行为封装为状态类,调用者响应事件,导致状态类的替换,实现状态的改变,与行为的改变。
状态模式
State接口,声明将会响应的不同事件,具体的事件将会实现这些接口
状态模式
拥有不同状态的糖果机
状态模式
未投入硬币状态的实现
状态模式

总结

状态模式

策略模式与状态模式的区别

从类图看策略模式与状态模式是完全相同的,但策略模式是将主要是用来封装一组可以互相替代的算法族,并且可以根据需要动态地去替换使用的算法。所以说策略的替换的主动调用的。状态模式封装状态与行为,拥有状态的对象是根据事件响应,改变状态,所以说状态的改变的定义好的。