設計模式 狀態模式(State)

2021-09-02 17:20:24 字數 736 閱讀 8838

一、狀態模式(state)

定義:當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類

理解:狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯簡化。

二、狀態模式uml圖

(3)context:維護乙個conceretstate子類的例項,這個例項定義當前的狀態

三、**實現

state類

abstract class state

concretestate類

class concretestatea : state

}class concretestateb : state

}

context類

class context

public state state //可讀寫的狀態屬性,用於讀取當前狀態和設定新狀態

set}

public void request()

}

客戶端**

static void main(string args)

設計模式 狀態模式(State)

核心思想就是 當物件的狀態改變時,同時改變其行為。所以,狀態模式就兩點 1 可以通過改變狀態來獲得不同的行為。2 你的好友能同時看到你的變化。state類是個狀態類 這裡用dispenserstate 及實現類 public inte ce dispenserstate public class f...

設計模式 狀態模式State

允許乙個物件在內部改變它的狀態,並根據不同的狀態有不同的操作行為。例如,水在固體 液體 氣體是三種狀態,但是展現在我們面前的確實不同的感覺。通過改變水的狀態,就可以更改它的展現方式。應用場景 1 當乙個物件的行為,取決於它的狀態時 2 當類結構中存在大量的分支,並且每個分支內部的動作抽象相同,可以當...

設計模式 狀態模式 State

定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新 乙個物件的行為取決於它的狀態,並且它必須在執行時刻根據狀態改變它的行為 乙個操作中含有龐大的多分支的條件語句,且這些分支依賴於該物件的狀態 public inte ce weather publi...