誰かが私にこれをデザインするのを助けることを望んでいたステートマシンを正しく動作させます。私はこのプロジェクトのためにPapyrusのスプリングステートマシンを使用しています。私は単純で直交した状態と、他のすべてが "オン"になる "マスター"状態の1つの種類がたくさんあります。
M.off -> M.on
A.off -> A.on
B.off -> B.on
C.off -> C.on
A.からの移行を引き起こすイベントがあります。A.onへのオフ、B.onへのB.offなど。私は、これらのそれぞれ(A、B、C)をそれ自身の地域に持っています。 A BとCがすべて "オン"の位置にあるときだけ、私はM.on状態に移行したいと思います。
私はステートマシンでこれを構造化する最良の方法を確信していません。
回答:
回答№1は2Spring Statemachineの詳細はわかりませんが、UMLステートマシンの場合、すべての地域が「オン」状態になっているときに解決策が出ます。
Mが "オン"のときにA、B、またはCがオフになったときに何が起こるかは問題からはっきりしない。仮定:Mは「オフ」になる。
このシンプルさを維持するために、各領域にヒストリの擬似状態を追加して、「オフ」になるたびにどの領域が「オン」であったかを記憶します。
結合への遷移は、 すべて (A && B && Cが "on"の場合のみ)。