狀態模式 行為型

2021-10-09 13:34:06 字數 748 閱讀 8557

3 相關模式

(1)狀態模式和策略模式

這是兩個結構相同,功能各異的模式,具體的在策略模式裡面講過了,這裡就不再贅述。

(2)狀態模式和觀察者模式

這兩個模式乍一看,功能是很相似的,但是又有區別,可以組合使用。這兩個模式都是在狀態發生改變的時候觸發行為,只不過觀察者模式的行為是固定的,那就是通知所有的觀察者;而狀態模式是根據狀態來選擇不同的處理。從表面來看,兩個模式功能相似,觀察者模式中的被觀察物件就好比狀態模式中的上下文,觀察者模式中當被觀察物件的狀態發生改變的時候,觸發的通知所有觀察者的方法就好比是狀態模式中,根據狀態的變化選擇對應的狀態處理。但實際這兩個模式是不同的,觀察者模式的目的是在被觀察者的狀態發生改變的時候,觸發觀察者聯動,具體如何處理觀察者模式不管;而狀態模式的主要目的在於根據狀態來分離和選擇行為,當狀態發生改變的時候,動態地改變行為這兩個模式是可以組合使用的,比如在觀察者模式的觀察者部分,當被觀察物件的狀態發生了改變,觸發通知了所有的觀察者以後,觀察者該怎麼處理呢?這個時候就可以使用狀態模式,根據通知過來的狀態選擇相應的處理。

(3)狀態模式和單例模式

這兩個模式可以組合使用,可以把狀態模式中的狀態處理類實現成單例

(4)狀態模式和享元模式

這兩個模式可以組合使用。由於狀態模式把狀態對應的行為分散到多個狀態物件中,會造成很多細粒度的狀態物件,可以把這些狀態處理物件通過享元模式來共享,從而節省資源。

行為型 狀態模式

定義 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。狀態模式主要解決的是當控制乙個物件狀態的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類中,可以把複雜的判斷邏輯簡化。上下文環境 context 它定義了客戶程式需要的介面並維護乙個具體狀態角色的例...

狀態模式 行為型

3 相關模式 1 狀態模式和策略模式 這是兩個結構相同,功能各異的模式,具體的在策略模式裡面講過了,這裡就不再贅述。2 狀態模式和觀察者模式 這兩個模式乍一看,功能是很相似的,但是又有區別,可以組合使用。這兩個模式都是在狀態發生改變的時候觸發行為,只不過觀察者模式的行為是固定的,那就是通知所有的觀察...

狀態模式 行為型

3 相關模式 1 狀態模式和策略模式 這是兩個結構相同,功能各異的模式,具體的在策略模式裡面講過了,這裡就不再贅述。2 狀態模式和觀察者模式 這兩個模式乍一看,功能是很相似的,但是又有區別,可以組合使用。這兩個模式都是在狀態發生改變的時候觸發行為,只不過觀察者模式的行為是固定的,那就是通知所有的觀察...