質問
この質問は少し哲学的で、「データとコードは同じかどうか」のようなものです。
イベント(信号)と状態の間に明確な違いはありますか?
例を示します。:
たとえば、道路を通過する車があります。車が角を曲がったとき、男(man_A
)道路を横断することは突然停止します。ホーンは信号であり、"man_A
突然停止する"の状態です man_A
.
もう一人の男(man_B
)は、同じ場所で、同時にあまりにも道路を横断していました。
それを考えてみましょう man_B
聴覚障害者だったので、彼はホーンを聞くことができません。しかし、実現する"man_A
突然停止した"彼のための信号になります。彼はホーンを聞いたかのように突然停止します。
だから私は「状態は別のプロセスの信号になる可能性があります。シグナルはプロセスを別の状態にします。それが彼らがまったく同じものである理由です」
私は間違っていますか、それらの間に明確な違いがありますか?
信号は状態変化です。我々は、2つの状態を持つ任意の信号を定義することができます。
解決
信号は特定の特定の時点に来るので、状態は信号ではありません。
A状態-変更 信号の結果であり、それ自体によって信号として見ることができます。しかし、それは国家そのものではありません。状態は信号が長い間消えた後も続きます。
たとえば、初期状態はどのように信号になりますか。
他のヒント
彼らは非常に、非常に異なっています:
同じイベントにより、現在の状態に応じて異なる状態に遷移する可能性があります:
SCXMLでは、次のことができます
<parallel>
直交領域を定義する状態。この場合、単一のイベントが異なる状態への複数の同時遷移をトリガする可能性があります:
さらに、以下の存在の可能性があるため
cond="…"
属性、別の状態への遷移は、または可能性があります ない イベントによってトリガーされたときに発生します。だから今、私たちは状態を変えないかもしれないイベントを持っています。また、無の遷移を有することが可能である。
event
データモデルの値またはスクリプトの結果が正しいとすぐに状態の変更を引き起こします。だから今、私たちはトリガイベントなしで起こることができる状態の変化を持っています。