在狀態模式(State Pattern)中,類的行為是基于它的狀態改變的。這種類型的設計模式屬于行為型模式。
在狀態模式中,我們創建表示各種狀態的對象和一個行為隨著狀態對象改變而改變的 context 對象。
對象的行為依賴于它的狀態(屬性),并且可以根據它的狀態改變而改變它的相關行為。
結構圖
結角色與理解
- 狀態模式共分為三種角色:
- Context(上下文環境):將自身的狀態與行為分離出去,封裝成狀態類,持有抽象狀態類的引用,根據自身屬性變換更換具體狀態類。
- State(抽象狀態類):具體狀態類的抽象,可以持有上下文環境的引用來更換狀態。
- Concrete State(具體狀態類):實現不同狀態下的不同行為。
- 上下文環境引用抽象狀態類完成行為的調用,狀態類的狀態變化可以有上下文環境處理,也可以由狀態類處理。
- 狀態類可以共享,像開關對象一樣,可以被多個上下文環境引用。
核心代碼
抽象狀態類
具體狀態類
狀態類
客戶端
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
狀態機
+關注
關注
2文章
493瀏覽量
28048
發布評論請先 登錄
相關推薦
熱點推薦
基于入侵行為模式的告警關聯
本文提出了一種基于入侵行為模式的告警關聯方式。入侵行為模式是定義在時間基礎上的一組謂詞公式,其實質是通過時間限制聯系在一起的入侵事件的集合。該方法在對大量告
發表于 08-13 08:35
?6次下載
設計模式:備忘錄設計模式
備忘錄設計模式(Memento Design Pattern)是一種行為型設計模式,它的主要目的是在不破壞對象封裝性的前提下,捕捉和保存一個對象的內部
評論