【问题标题】:Should I fire trigger to change state from the OnEntry() method in finite state machine?我应该触发触发器以从有限状态机中的 OnEntry() 方法更改状态吗?
【发布时间】:2014-07-12 16:26:23
【问题描述】:

我正在使用无状态框架 (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# .net state-machine stateless-state-machine


    【解决方案1】:

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

    状态推送方法非常好,其中一个状态执行一些工作并调用转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 2012-07-31
      • 2019-07-04
      相关资源
      最近更新 更多