狀態

狀態即為特殊立場或滿足一些條件,可以執行指定動作或等待一些事件

如何找尋狀態?

範例:自動販賣機
假設有簡單的一自動販賣機販售兩類商品,一類售價20元,另一類售價50元。如果該販賣機只能辨識10元及50元硬幣。一開始機器處於Hello的狀態,當投入10元時,機器會進入餘額不足的狀態,直到投入的金額大於20元為止。如果一次投入50元,則可以 選擇所有的產品,否則就只能選擇20元的產品。完成選擇後,將會賣出商品並且找回 剩餘的零錢,隨後,機器又將返回初始的狀態。

  • 列出使用者需求的事件

    1. 投下10元硬幣
    2. 投下50元硬幣
    3. 選擇20元商品
    4. 選擇50元商品
  • 一個事件為兩個狀態的連接


狀態轉換表

Add10 Add50 Item20 Item50
Hello NotEnough Menu2050 X X
NotEnough Menu20 Menu2050 X X
Menu20 (<50)Menu20/ (≥ 50)Menu2050 Menu2050 Hello X
Menu2050 Menu2050 Menu2050 Hello Hello

狀態機

用來與使用者確認使用案例是否符合使用者需求

程式與狀態機的一致性

降低程式的維護難度,以及提升維護效率,狀態機的更改可立即修改對應的程式碼

狀態機

程式碼

results matching ""

    No results matching ""