7

複数の階層的な深さを持つステート マシンが必要なネットワーク プログラミングのシナリオがあります。

State Machine 1
     State Machine 2

     State Machine 3
          State Machine 4

ここで、State Machine1には 2 つのステート マシン2とが含まれています33マシンも含まれています4

外側のマシンの状態に基づいて、メッセージは内側の状態マシンを通過する必要があります。また、内部ステート マシンに何らかのエラーがある場合は、フィードバックを上位マシンに与える必要があります。

これを行うための良いアプローチはありますか?

今、私はこれを行う if ステートメントとフラグのジャングルを持っています。状態マシンの状態全体が回復不能な状態になるため、フラグが設定されないという問題に直面し続けています。

更新: 状態とマシンを静的に保とうとしています。リクエストはマシンと状態を通過するため、リクエスト自体が必要なすべてのメタデータを保存します。この場合、通常のステート マシン パターンは役に立ちません。

4

1 に答える 1

0

状態とContextを分離する状態パターンコンテキストは状態の階層を格納でき、状態のサブクラス自体はこの階層を認識しません。if の下の各セクションが個別の状態サブクラスになるため、すべての if ステートメントがなくなります。

于 2012-12-08T17:28:55.587 に答える