3

非決定論的FSMを実装する必要があるため、状態と遷移(他のFSMの状態に依存する場合と依存しない場合がありますが、イベント/入力に依存する必要があります)を保持するFSMクラスを定義するというアイデアを思いつきました。各オブジェクトと静的std::mapを、すべてのFSMが構築時に登録するクラスに追加します。このように、イベント/入力時に、各FSMは必要に応じて他のFSMの状態を検索し、すべてのFSMを1つの巨大な決定論的FSMに結合することなくそれに応じて動作できます。

これは1つのNFSMで機能します。これは私が今必要としているすべてですが、さらに必要な場合は拡張できますか?このデザインに根本的な問題はありますか?

4

1 に答える 1

3

静的な部分についてはよくわかりません。マップは良い考えのようです。関連するすべてのFSM(つまり、相互に作用するFSM)のマップを保持する名前空間オブジェクトを作成する方が合理的と思われます。これは、独立して(スレッドセーフで)実行できるさまざまなマシンのセットが必要になる可能性があるためです。多くの状況で。

静的マップは、コードの臭いが悪いと一般に理解されているシングルトンの例です。

于 2011-12-09T16:03:26.200 に答える