設計模式 狀態模式(c )

2021-07-16 19:26:11 字數 334 閱讀 5521

狀態模式適用於—— 乙個物件有多種狀態,在不同狀態下執行同一操作的行為是不同的。例如,檔案在read only、write only、write and read 狀態下,執行讀、寫等操作時的行為是不同的。

狀態模式基本思想——用動態繫結(執行時繫結,多型,用虛函式實現)代替if-else或switch,以達到增加狀態時,現有**無需修改(對擴充套件開放,對修改關閉的原則 

gof《設計模式》的定義為——允許乙個物件在其內部狀態改變時改變它的行為。從而使物件看起來似乎修改了其行為。

設計模式 狀態模式 C

狀態模式主要解決當控制乙個物件狀態的轉換的條件表達過於複雜的情況,使得狀態的轉換不依賴於整體的操作。本文將通過乙個具體的例子說明狀態模式的應用。假設下面乙個場景 乙個新任務提交後,先是收集資料,資料收集完成後等等分配一台機器,分配到機器後就可以將此任務部署至此機器後就可以通知相關模組開始工作。先對此...

設計模式 狀態模式 C

狀態模式是產生乙個可以改變其類的物件,通過前端物件狀態的變化來使後端工作的不同物件履行其職責。通過改變乙個物件的狀態,使它的工作物件也發生變化。如果乙個物件在決定它要做什麼之前總是要對當前的 狀態做很多的判斷,那麼就可以考慮使用狀態模式。乙個壞的例子 worker.h include ifndef ...

設計模式 狀態模式(C )

參考 設計模式讀書筆記 狀態模式 如下 filename state.h datetime 2016.09.19 author hjs e mail jingshuang hu 163.com blog ifndef state h define state h include context.h ...