【軟件設計】狀態(tài)機(state machine)

A state machine?

describes the behaviour of an object in terms of

events that affect the object and the?

state of the object between events

狀態(tài)機定義了在不同事件之間對象的行為和狀態(tài)

State(狀態(tài))

State(“狀態(tài)”),就是一個系統(tǒng)在其生命周期中某一時刻的運行情況,此時,系統(tǒng)會執(zhí)行一些動作,或者等待一些外部輸入。

Event(事件)

Event(“事件”),就是在一定的時間和空間上發(fā)生的對系統(tǒng)有意義的事情。

Guard(條件)

狀態(tài)機對外部消息進行響應的時候,除了需要判斷當前的狀態(tài),還要判斷

跟這個狀態(tài)相關的一些條件是否成立。這種判斷稱為guard(“條件”)。guard

通過允許或者禁止某些操作來影響狀態(tài)機的行為。

Transition(遷移)

從一個狀態(tài)切換到另一個狀態(tài)被稱為Transition(“遷移”)。引起狀態(tài)遷移的事件被稱為triggering event (“觸發(fā)事件”),或者被簡稱為trigger (“觸發(fā)”)。

state-dependent object:

Reacts differently to events depending on the object’s state會根據(jù)event不同作出不同的反應

state-independent object:

For all events of interest, an object always reacts to the event the same way所有的event都只會有一種反應


例子


在state a下,根據(jù)條件(guard)觸發(fā)了trainsition


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容