6

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

4

1 に答える 1

8

状態のプッシュと状態のプルについて話しているようです。どちらも機能しますが、状況によっては 1 つのアプローチの方が効率的です。

1 つの状態が何らかの作業を行い、遷移を呼び出す状態プッシュ アプローチを使用することはまったく問題ありません。

于 2014-05-26T12:15:51.957 に答える