設計模式 狀態模式(State)

2021-08-20 05:37:59 字數 720 閱讀 8241

核心思想就是:當物件的狀態改變時,同時改變其行為。

所以,狀態模式就兩點:1、可以通過改變狀態來獲得不同的行為。2、你的好友能同時看到你的變化。

▼state類是個狀態類(這裡用dispenserstate)及實現類

public inte***ce dispenserstate

public class fullstate implements dispenserstate

}public class nullstate implements dispenserstate

}

▼context類可以實現切換(這裡是waterdispenser)

public class waterdispenser

private static void setstate(dispenserstate state)

public dispenserstate getstate()

public void press()

dispenserstate.press();

}}

▼測試:

public class test

}}▼輸出:

根據這個特性,狀態模式在日常開發中用的挺多的,尤其是做**的時候,我們有時希望根據物件的某一屬性,區別開他們的一些功能,比如說簡單的許可權控制等。

設計模式 狀態模式(State)

一 狀態模式 state 定義 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類 理解 狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯簡化。二 狀態模式uml圖 3 context ...

設計模式 狀態模式State

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

設計模式 狀態模式 State

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