狀態機工作流
狀態機工作流通常用於模擬不能被預測人類行為時的事件流的一種替代方案,例如,在一個審批流程中,當事件驅動流程執行的過程,通常作為外部事件和導向轉換, 通常作為外部事件和引導其他可能的狀態之間的轉換。狀態機工作流的必須包括initial狀態和 final 狀態,用以表示該程式的啟動和完成狀態。這是一個靈活的邏輯流程,可以在工作流的狀態間來回迴圈,因為外部事件驅動一個狀態機工作流,他們在本質上是被動的。
這裡麵包含幾個比較重要的基礎元素
State Entry(進入狀態),State Exit(離開狀態),Transitions(過渡),Trigger(觸發器),Condition(條件),Action(行為),Final State(最終狀態)
Transitions:狀態機使用Transitions用於使從一個狀態切換到另一個。狀態的邏輯流程可被轉換,Transitions只能流的一個方向。所以,如果狀態從一個狀態到另一個的變化然後再返回到原來的狀態,必須經過兩個Transitions
Trigger: 可以通過用Trigger執行自定義的程式碼 bookmark activity ,一般做為bookmark activity 容器。
Condition:用於判斷一個bookmark activity 活動被啟用後的狀態轉換的成功與否的表示式
總結
這是一個在NET 4.0 中實現的功能,FlowChar完全可以實現StateMachine 的所有業務邏輯,將FlowChar的結構展現成StateMachine ,通過攔截Bookmark實現[進入狀態],[結束狀態]