如何理解xState
如何理解xState,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
xState
A state machine editot and runtime. Can be used to model simple workflow
简介
xState编辑器是一个允许开发人员创建状态机的编辑器,通过通用直观的解决方案。
适用场景
状态机用处极其广泛,适用于订单,用户,任务等等具有确定状态的领域模型
特点
结合模型和代码
可以创建仅包含状态和变迁的状态机
也可以提供状态变迁时的触发器
状态转移触发器
EntryAction
ExitAction
TransitionAction
状态转移校验
TransitionGuard
使用范例
模型可以被工具用于在运行时触发状态转移
如何传递业务属性
有些时候需要传递业务信息给状态机的各个触发器做判断,虽然缺省的Event类里面没有这些属性,但由于Event 是个普通类,用户可以自定义自己的Event子类,在子类里面定义需要的业务属性。允许时可以在各个Action里面cast 标准的Event 为你自定义的Event类即可获得额外的属性。
如何恢复状态机之前的状态
有时需要保存状态机的当前状态,并在之后恢复。可以通过调用StateMachine的restore(String id),传入需要恢复的状态id实现。
如何重置状态机
在状态机没有处于End状态的情况下,可以通过调用reset()方法重置状态机的状态。
集成说明
参考样例POM
Depenency
<dependency> <groupId>com.xrosstools</groupId> <artifactId>xstate</artifactId> <version>${latest}</version> </dependency>
Demo project
Demo
实际案例
简单状态机
复杂状态机
关于如何理解xState问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。