状態パターンでは、これはどのようにモデル化されていますか?
トリガー X でステート A からステート B へ、現在のステートが A の場合は条件 C1
トリガー X でステート A からステート C へ、現在のステートが A の場合は条件 C2
これは通常どのように達成されますか?実装する必要があるガード条件がたくさんあります。
状態パターンでは、これはどのようにモデル化されていますか?
トリガー X でステート A からステート B へ、現在のステートが A の場合は条件 C1
トリガー X でステート A からステート C へ、現在のステートが A の場合は条件 C2
これは通常どのように達成されますか?実装する必要があるガード条件がたくさんあります。
これは非常に標準的です。たとえば、この例を参照してください。
【宿題じゃないので勝手に編集!】
私が正しく理解していると仮定すると:
X
2 つの可能な遷移のいずれかをトリガーできる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番目。