C 設計模式 State 狀態模式詳解

2021-09-19 23:57:17 字數 412 閱讀 1456

狀態模式的適用場景

狀態模式的優缺點

狀態模式用於解決系統中複雜物件的狀態轉換以及不同狀態下行為的封裝問題。當系統中某個物件存在多個狀態,這些狀態之間可以進行轉換,而且物件在不同狀態下行為不相同時可以使用狀態模式。

狀態模式將乙個物件的狀態從該物件中分離出來,封裝到專門的狀態類中,使得物件狀態可以靈活變化,對於客戶端而言,無須關心物件狀態的轉換以及物件所處的當前狀態,無論對於何種狀態的物件,客戶端都可以一致處理

狀態模式定義如下:

狀態模式(state pattern):允許乙個物件在其內部狀態改變時改變它的行為,物件看起來似乎修改了它的類。其別名為狀態物件(objects for states),狀態模式是一種物件行為型模式。

C 設計模式 state 狀態模式

head first 設計模式 中的樣例非常不錯,想製造乙個自己主動交易的糖果機,糖果機有四個狀態 投入錢不足,投入錢足夠,糖果,糖果售罄。糖果機的當前狀態處於當中不同的狀態時,它針對同乙個操作的反映動作也不同。傳統面向過程程式設計會套用if else對不同的狀態下分別處理,邏輯麻煩並且不具有可拓展...

C 設計模式 狀態模式(State)

允許乙個物件在其內部狀態改變時改變它的行為。從而使物件看起來似乎修改了其行為。23種設計模式不比太過於計較它們之間的差異,而更關注他們到底解決的是什麼樣的乙個穩定點和變化點的關係問題。這個時候呢模式之間的關係也理順了,學習模式一那麼生搬硬套,它無非是設計上的演化而已,是一種松耦合設計的原則演化而已。...

C 設計模式 狀態(State)

允許乙個物件在其內部狀態改變時改變它的行為。主要組成 context 環境,上下文,客戶主要使用該類 state 狀態父類或介面 concretestate 具體狀態 using system namespace state public void changestate state state p...