天天看點

Spring-Statemachine 狀态機

使用狀态機來管理對象生命流對于流程複雜易變的業務場景能減輕維護和測試的難度

一、狀态機的要素:

狀态機可歸納為4個要素,現态、條件、動作、次态。“現态”和“條件”是因,“動作”和“次态”是果。

1 現态:指目前所處的狀态

2 條件:又稱“事件”,當一個條件被滿足,将會觸發一個動作,或者執行一次狀态的遷移

3 動作:條件滿足後執行的動作。動作執行完畢後,可以遷移到新的狀态,也可以仍舊保持原狀态。動作不是必須的,當條件滿足後,也可以不執行任何動作,直接遷移到新的狀态。

4 次态:條件滿足後要遷往的新狀态。“次态”是相對于“現态”而言的,“次态”一旦被激活,就轉換成“現态”。

二、名詞解釋

State Machine 将狀态結合、轉移、事件整合到一起

State 狀态機的主要實體,其中狀态更改由事件驅動,模拟一些不變條件成立的情況

Transition 源狀态和目标狀态之間的關系,它可能是複合過度的一部分,将狀态機配置從一個狀态到另一個地方,響應狀态機的一個特定類型的事件的發生。

Event 發送到狀态機的實體,然後驅動各種狀态更改。

Initial State 狀态機特殊的開始狀态. 初始狀态标記在一個狀态或者一個區域上. 一個狀态的多個區域都可能回到初始狀态

End State 一種最終狀态,一種特殊的狀态表示完成封閉區域,如果封閉區域直接包含在一個狀态機狀态機和其他地區也完成了,然後它意味着整個狀态機完成。

Region 組合狀态或者狀态機。它包含狀态和轉換.

Guard 是一個boolean表達式,是基于擴充的state變量和事件參數的值動态評估的。當值為TRUE時,通過啟用操作或轉換來影響狀态機的行為,并在值為FALSE時禁用操作和轉換。

Action 行動是一種行為的觸發過渡期間執行.

文章僅作為個人學習整理