天天看點

設計模式-狀态模式

定義:當一個對象得内在狀态改變時,他的行為也會改變。對有狀态的對象,把複雜的"判斷邏輯"提取到不同的狀态對象中,允許狀态對象在其内部狀态發生改變時改變其行為。

使用場景:代碼中包含大量與對象狀态有關的條件語句。

注意事項:在行為受狀态限制的時候使用,且狀态不超過5個。

模式的結構:

環境類(Context):它定義了用戶端需要的接口,内部維護一個目前狀态,并負責狀态切換

抽象狀态(State):定義一個接口,用于封裝環境對象中的特定狀态所對應的行為,可以有一個或多個行為。

具體狀态(Concrete State):實作抽象狀态所對應的行為,并且在需要的情況下進行狀态切換。

設計模式-狀态模式

示例代碼:

測試代碼:

傳回目錄

書山有路勤為徑,學海無涯苦作舟