基于运行时栈的状态机设计

目录

基于运行时栈的状态机设计

状态机运行时状态之间的跳转会由一个栈来维护和管理,用于记录状态的跳转上下文。状态之间的跳转方式有以下几种方式:

  • Enter(targetState,exitCurrent):跳到下一个状态,在栈中压入目标状态,exitCurrent表示是否先推出当前状态
  • Exit(targetStateWhenEmpty):跳到上一个状态,当前状态弹出栈顶,targetStateWhenEmpty表示当栈弹空的时候进入的状态,没有则如今到默认状态。
  • ClearStack(targetState):清空栈至最底层状态或者清空栈并且进入指定的目标状态targetState,如果栈中只有一个状态并且targetState为空则进入默认状态。

状态切换事件

状态切换的时候会触发以下几个状态事件:
- OnEnter:第一次压入栈顶的时候
- OnExit:弹出栈的时候
- OnPause:作为栈顶的时候压入新元素的时候
- OnResume:弹出栈顶元素,该状态变为栈顶的时候


应用

在实践中,该设计可以用于简单的状态机需求,例如基于运行时栈的UI管理,但暂不支持层次状态机。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值