编程语言
首页 > 编程语言> > c# – 我应该触发触发器来改变有限状态机中的OnEntry()方法的状态吗?

c# – 我应该触发触发器来改变有限状态机中的OnEntry()方法的状态吗?

作者:互联网

我使用无状态框架(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,stateless-state-machine
来源: https://codeday.me/bug/20190517/1119747.html