Korzystam z ramy bezstanowej (https://code.google.com/p/stateless/) do modelu skończonej maszyny stanów w mojej aplikacji. Są pewne stany, które powinny wykonać pewną logikę, a następnie natychmiast przejść do następnego stanu. Zastanawiam się, czy to dobra praktyka, aby zrobić to tak jak:Czy powinienem uruchomić wyzwalacz, aby zmienić stan z metody OnEntry() w skończonym komputerze stanu?
var machine = new StateMachine<State, Trigger>(State.Idle);
machine.Configure(State.StateA)
.OnEntry(() =>
{
DoSomeStuff();
_machine.Fire(Trigger.TriggerB); // move to StateB
});
Czy to jest dobry projekt FSM? Jeśli nie, jakie byłoby lepsze podejście? Pomysł, który próbuję zaimplementować, to mieć pewne stany, które automatycznie przesuwają maszynę do następnego stanu bez posiadania zewnętrznego kodu, który czeka na DoSomeStuff(), aby zakończyć, a następnie do uruchomienia maszyny, aby przejść w następnym stanie.