/ /ステートマシンを設計する方法 - ステートマシン

状態機械を設計する方法 - 状態機械

誰かが私にこれをデザインするのを助けることを望んでいたステートマシンを正しく動作させます。私はこのプロジェクトのために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は2

Spring Statemachineの詳細はわかりませんが、UMLステートマシンの場合、すべての地域が「オン」状態になっているときに解決策が出ます。

Mが "オン"のときにA、B、またはCがオフになったときに何が起こるかは問題からはっきりしない。仮定:Mは「オフ」になる。

このシンプルさを維持するために、各領域にヒストリの擬似状態を追加して、「オフ」になるたびにどの領域が「オン」であったかを記憶します。

ステートマシンの図

結合への遷移は、 すべて (A && B && Cが "on"の場合のみ)。