是否可以构造一个状态机,其中仅下一个状态本身会触发事件以调用下一个状态转换?像隐式过渡一样。我不想在外部定义它们,而是想创建类似层叠的东西。
答案 0 :(得分:0)
如果我正确理解这一点,则希望对状态转换(级联转换)具有类似“ domino”的效果,以便当前状态触发到下一个状态的转换,而该状态又触发到下一个状态的转换,依此类推)。
与SM动作直接相关。
每个SM动作都有权访问StateContext<State, Event>
,您可以从中检索状态机实例并触发下一个事件:
//Domino Effect
void actionForS1(StateContext<State, Event> context) {
//do actions
Message transitionToS2 = MessageBuilder.withPayload(...).build();
context.getStateMachine().sendEvent(transitionToS2);
}
void actionForS2(StateContext<State, Event> context) {
//do actions
Message transitionToS3 = MessageBuilder.withPayload(...).build();
context.getStateMachine().sendEvent(transitionToS3);
}