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