[經驗] 條件的狀態流程

  • 266
  • 0

摘要:[經驗] 流程狀態

條件的狀態流程

 

條件的狀態可以用來記錄流程目前的位置,也可以將各個流程要做的事情分開處理,讓程式寫起來比較容易,

例如要處理一件事情,最基本的狀態模型可以分為四種:0.未處理 1.繼續處理 2.處理中 3.處理完成

(這裡有個前提是狀態必須是只能同時被一個執行續處理的。)

接著主程式檢查這個狀態,進入到各自的流程:

0.未處理: 檢查是否可以處理的條件,若可處理,則然後初始化相關內容,並將狀態修改為繼續處理。

 

1.繼續處理: 到這邊主要會檢查是否停止處理的條件,若停止處理:

    1.可分為移除處理工作

    2.或者重新回到未處理狀態

若確定要處理:

    1.就會將狀態設為處理中,並非同步執行要處理的內容。

 

2.處理中: 這個狀態不會放在主程式作狀態檢查,因為它正在非同步處理中,故不需要理它,

非同步處理後的結果會有兩種:

    1. 遇到問題,需要重新處理,就將狀態改為繼續處理,並結束這個非同步工作,後續可自由回傳錯誤原因之類的。

    2. 都處理完成,將狀態修改為處理完成,並結束這個非同步工作,後續可自由回傳成功訊息之類的。

 

3.處理完成: 一但確認完成後,可判斷相關條件,往兩個方向走:

    1.可移除處理工作。

    2.回到未處理,可能是循環工作,並可設置時間性條件(依性質決定要在初始化或處理完成來做)。