天天看點

設計模式- 狀态模式

狀态(State)模式的定義:對有狀态的對象,把複雜的“判斷邏輯”提取到不同的狀态對象中,允許狀态對象在其内部狀态發生改變時改變其行為。

狀态模式将與特定狀态相關的行為局部化到一個狀态中,并且将不同狀态的行為分割開來,滿足“單一職責原則”。

減少對象間的互相依賴。将不同的狀态引入獨立的對象中會使得狀态轉換變得更加明确,且減少對象間的互相依賴。

有利于程式的擴充。通過定義新的子類很容易地增加新的狀态和轉換。

狀态模式的使用必然會增加系統的類與對象的個數。

狀态模式的結構與實作都較為複雜,如果使用不當會導緻程式結構和代碼的混亂。