1.概述
當一個對象的內在狀態改變時允許改變其行爲,這個對象看起來像是改變了其類。
2.解決的問題
主要解決的是當控制一個對象狀態轉換的條件表達式過於複雜的情況,把狀態的判斷邏輯移動到表示不同的一系列類當中,可以把複雜的邏輯判斷簡單化。
3.模式中的角色
3.1 Context : 它定義了客戶端程序需要的接口並維護一個具體狀態角色的勢力,將於狀態相關的操作委託給當前的ConcreteState 對象來處理。
3.2 State: 定義一個接口以封裝使用Context的一個特定狀態相關的行爲。
3.3 Concrete State:實現抽象狀態定義的接口。
4.模式解讀
4.1 狀態模式的類圖