状态模式

什么是状态:

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

有限状态机具体描述
在这里插入图片描述

有限状态机的实现

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

状态模式的实现

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

总结

在这里插入图片描述

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值