有限狀態(tài)自動機概述
有限狀態(tài)自動機-守衛(wèi)版
狀態(tài)機實戰(zhàn)-監(jiān)聽
github: https://github.com/wenyu7980/statemachine
狀態(tài)機實戰(zhàn)-監(jiān)聽
狀態(tài)機是事件驅(qū)動的框架吞歼,所有的業(yè)務(wù)通過監(jiān)聽事件處理。
監(jiān)聽時間點
通過狀態(tài)機的定義M=(Q, Σ, δ, q0, F)塔猾,其中狀態(tài)篙骡,事件,遷移都可以監(jiān)聽,所以糯俗,監(jiān)聽的操作空間還是很大的慎皱。
下面將介紹具體有哪些監(jiān)聽(非調(diào)用順序排序):
1.狀態(tài)
一條記錄在任何一個時間點都有一個狀態(tài)(狀態(tài)是屬性的一種,標志著相同類型的實例的不同)叶骨。對于狀態(tài),可以從進入和離開進行監(jiān)聽祈匙。
2.事件
狀態(tài)的遷移是通過事件來觸發(fā)的(有且只能通過事件來完成)忽刽。對于事件,可以從觸發(fā)前和觸發(fā)后進行監(jiān)聽夺欲。
3.狀態(tài)遷移
狀態(tài)機的狀態(tài)變換跪帝,被稱為狀態(tài)遷移。在有限狀態(tài)自動機中些阅,狀態(tài)遷移也是有限的伞剑。對于狀態(tài)遷移的監(jiān)聽,需要源狀態(tài)和目標狀態(tài)市埋。
4.其他
其他的監(jiān)聽黎泣,并不是從狀態(tài)機定義角度分析得出的。更多的是從使用或者編程的角度得出的缤谎。
4.1.狀態(tài)機
對狀態(tài)機進行監(jiān)聽抒倚,不區(qū)分狀態(tài)和事件,只有前和后坷澡。
4.2.動作監(jiān)聽
與 4.1.狀態(tài)機類似托呕。差別是沒有前后。
總結(jié)
業(yè)務(wù)處理可以穿插到各個監(jiān)聽的時間點中频敛。
image.png