アプリケーションで有限状態マシンをモデル化するために、ステートレス フレームワーク ( 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() が終了するのを待ってから、マシンを次の状態に移行するようにトリガーする外部コードを持たずに、自動的にマシンを次の状態に進める特定の状態を持つことです。