2

状態パターンでは、これはどのようにモデル化されていますか?

トリガー X でステート A からステート B へ、現在のステートが A の場合は条件 C1

トリガー X でステート A からステート C へ、現在のステートが A の場合は条件 C2

これは通常どのように達成されますか?実装する必要があるガード条件がたくさんあります。

4

1 に答える 1

1

これは非常に標準的です。たとえば、この例を参照してください。

【宿題じゃないので勝手に編集!】

私が正しく理解していると仮定すると:

  • X2 つの可能な遷移のいずれかをトリガーできる1 つのイベント ( ) があります。
  • どの条件が成立するかによって発火する遷移を選択する (C1またはC2)

もしそうなら、それはガード条件を使用するための標準的なケースです。構文は次のようになります。

  • X[C1]トランジション A->B のラベルとして、および
  • X[C2]トランジション A->C で。

C1 と C2 はブール値に評価される必要があるためvar==2、コメントに従って代用しても問題ありません。つまり、ラベルは と にX[var==2]なりX[var==3]ます。

意味的に正しいためには、状態 A で C1 と C2 が相互に排他的でなければなりません。

h番目。

于 2011-04-20T12:04:10.597 に答える