设计模式(十)-状态模式、Qt状态机

书中关于状态模式引入的例子是:小菜一天的工作状态

版本一:很简单一个时间变量,一个判断事件的函数。(最简单粗暴的,如果你的代码不超过500行,还是可以使用这种方式的)

版本二:写了一个类,包含时间的成员变量。然后一个判断时间的成员函数(好吧,简单粗暴的外形被影藏起来了)

版本三:各个子状态类,都继承一个状态抽象类,有一个公共状态改变接口(根据业务状态逻辑,设置上下文的当前状态)。这个接口,在子类实体中实现。所以这里还必须有一个上下文类,包含一个状态成员变量。当前状态的获取,设置。对请求做处理的接口函数,而这个函数就是调用状态父类的公共接口,(公用了一个函数名称而已,大哭),其具体实现是在状态子类中进行的。


把原来大二全的一个函数判断,分解到个子类中。原始的8到20点的各个状态的判断,分解为上午、下午、晚上三个阶段,然后在阶段中,判断状态。这里各个子状态的切换逻辑,都已经预设在子状态中了。

本质,将conetext中的state,一次传递该表。

实际工作中的状态机编程,可能并不这么直接简单。

Qt的状态机,可以比较方便使用。Qt状态机学习

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值