設計模式 狀態模式(state)

2021-10-23 04:43:18 字數 748 閱讀 5707

定義:類的行為是基於它的狀態改變的。

個人理解:相同的動作在不同的狀態下有不同的表現,例如每個人都會哭、笑,對應的狀態可能為開心,傷心,所以就有開心的笑,傷心的笑不同狀態不同動作。

優點:封裝轉換狀態,將某個狀態有關的行為放到乙個類中,狀態改變行為也隨之改變。

缺點:結構比較複雜,系統類和物件的數量會增多。

**:

//狀態抽象類

public abstract class personstate

//開心狀態時 重寫方法

@override

void smile()

@override

void cry()

@override

void say() }//

public class person

public void cry()

public void say()

}

總結:這個模式還是要看是否是行為隨狀態而改變的場景,而且狀態很多的話也不建議使用這種設計模式。

設計模式 狀態模式(State)

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

設計模式 狀態模式(State)

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

設計模式 狀態模式State

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