我正在使用无状态框架(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()完成并随后触发机器进入下一个状态的某些外部代码。

最佳答案

您似乎在谈论状态推送与状态拉动。两种方法都可行,一种方法在某些情况下可能更有效。

具有状态推送方法是非常好的,其中一种状态可以完成一些工作并称为过渡。

关于c# - 我应该在有限状态机中触发从OnEntry()方法更改状态的触发器吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23827054/

10-17 01:13