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()方法重置状态机的状态。
Depenency
<dependency>
<groupId>com.xrosstools</groupId>
<artifactId>xstate</artifactId>
<version>${latest}</version>
</dependency>
从1.0.0起,所有新增版本将发布到Maven中央仓库