Mermaid - 狀態圖(State Diagram)
本篇筆記的範例來自 @Memaid-State diagrams
狀態圖(State Diagrams) 常用於描述系統、物件或組件的狀態變化及其在不同狀態間的轉換過程。這種圖表適合用來表示系統或對象在其生命週期內的行為,特別是在分析和設計軟體系統時,用來揭示物件如何根據不同事件或條件改變其狀態。在需要明確展示對象狀態的變遷規則、事件響應和條件邏輯時,狀態圖特別有用。
狀態 (States)
狀態圖 (State Diagram) 是用來描述 系統、物件或組件 在不同狀態之間的轉換 (Transitions) 和變化過程。它特別適合用於:
- 描述系統的生命週期 (如用戶登入/登出、燈的開關狀態)
- 模擬狀態機 (State Machine) (如按鍵事件、音樂播放器狀態)
- 分析系統行為與流程 (如 API 狀態變化、交易流程)
語法:
stateDiagram-v2
stateId
state "This is a state description1" as s2
s2 : This is a state description2
狀態轉換 (Transitions)
轉換(transitions) 指的是一種狀態進入另一種狀態時的路徑。
stateDiagram-v2
s1 --> s2
開始與結束 (Start and End)
語法:
[*]用 於定義開始或停止的狀態
stateDiagram-v2
[*] --> s1
s1 --> [*]
複合狀態 (Composite States)
在現實世界的場景中常常會遇到一個狀態內部包含多個子狀態的狀況
語法:
stateDiagram-v2
[*] --> First
state First {
[*] --> Second
state Second {
[*] --> second
second --> Third
state Third {
[*] --> third
third --> [*]
}
}
}
條件選擇 (Choice)
有時狀態會根據不同的情境條件來決定要轉換哪一種狀態, <<choice>> 相當於狀態轉換的 if-else
stateDiagram-v2
state if_state <<choice>>
[*] --> IsPositive
IsPositive --> if_state
if_state --> False: if n < 0
if_state --> True : if n >= 0