Ich verwende Stateless Framework (https://code.google.com/p/stateless/), um endliche Zustandsmaschine in meiner Anwendung zu modellieren. Es gibt bestimmte Zustände, die eine gewisse Logik ausführen sollten und dann sofort zum nächsten Zustand übergehen. Ich frage mich, ist es gute Praxis, dies wie folgt zu tun:Sollte ich Auslöser auslösen, um den Status von der OnEntry() -Methode in endlicher Zustandsmaschine zu ändern?
var machine = new StateMachine<State, Trigger>(State.Idle);
machine.Configure(State.StateA)
.OnEntry(() =>
{
DoSomeStuff();
_machine.Fire(Trigger.TriggerB); // move to StateB
});
Ist das gute FSM Design? Wenn nicht, was wäre besser Ansatz? Die Idee, die ich zu implementieren versuche, besteht darin, bestimmte Zustände zu haben, die die Maschine automatisch in den nächsten Zustand bringen, ohne einen externen Code zu haben, der darauf wartet, dass DoSomeStuff() beendet wird und dann die Maschine in den nächsten Zustand versetzt.