超狀態
當多個狀態擁有相同的事件,且超出原本的狀態事件,為了簡化狀態機的變化,可將多個狀態視為一個大的狀態,共享一個變換,子狀態都可使用同樣的方法
需求分析
- 投下10元硬幣
- 投下50元硬幣
- 選擇20元商品
- 選擇50元商品
- 賭博
狀態轉換表
Add10 | Add50 | Item20 | Item50 | Gambling | |
---|---|---|---|---|---|
Hello | NotEnough | Menu2050 | X | X | X |
NotEnough | Menu20 | Menu2050 | X | X | (lose)NotEnough/(win)Menu2050 |
Menu20 | (<50)Menu20/(≥50)Menu2050 | Menu2050 | Hello | X | (lose)Menu20/(win)Menu2050 |
Menu2050 | Menu2050 | Menu2050 | Hello | Hello | Menu2050 |