我正在使用无状态框架 ( https://code.google.com/p/stateless/ ) 在我的应用程序中对有限状态机进行建模。有些状态应该执行一些逻辑,然后立即移动到下一个状态。我想知道这样做是否是一种好习惯,如下所示:
var machine = new StateMachine<State, Trigger>(State.Idle);
machine.Configure(State.StateA)
.OnEntry(() =>
{
DoSomeStuff();
_machine.Fire(Trigger.TriggerB); // move to StateB
});
这是好的 FSM 设计吗?如果没有,有什么更好的方法?我试图实现的想法是让某些状态自动将机器推进到下一个状态,而不需要一些外部代码等待 DoSomeStuff() 完成然后触发机器进入下一个状态。