在狀態(tài)模式(State Pattern)中,類的行為是基于它的狀態(tài)改變的。這種類型的設(shè)計(jì)模式屬于行為型模式。
在狀態(tài)模式中,我們創(chuàng)建表示各種狀態(tài)的對(duì)象和一個(gè)行為隨著狀態(tài)對(duì)象改變而改變的 context 對(duì)象。
對(duì)象的行為依賴于它的狀態(tài)(屬性),并且可以根據(jù)它的狀態(tài)改變而改變它的相關(guān)行為。
結(jié)構(gòu)圖
結(jié)角色與理解
- 狀態(tài)模式共分為三種角色:
- Context(上下文環(huán)境):將自身的狀態(tài)與行為分離出去,封裝成狀態(tài)類,持有抽象狀態(tài)類的引用,根據(jù)自身屬性變換更換具體狀態(tài)類。
- State(抽象狀態(tài)類):具體狀態(tài)類的抽象,可以持有上下文環(huán)境的引用來(lái)更換狀態(tài)。
- Concrete State(具體狀態(tài)類):實(shí)現(xiàn)不同狀態(tài)下的不同行為。
- 上下文環(huán)境引用抽象狀態(tài)類完成行為的調(diào)用,狀態(tài)類的狀態(tài)變化可以有上下文環(huán)境處理,也可以由狀態(tài)類處理。
- 狀態(tài)類可以共享,像開(kāi)關(guān)對(duì)象一樣,可以被多個(gè)上下文環(huán)境引用。
核心代碼
抽象狀態(tài)類
具體狀態(tài)類
狀態(tài)類
客戶端
-
狀態(tài)機(jī)
+關(guān)注
關(guān)注
2文章
493瀏覽量
28232
發(fā)布評(píng)論請(qǐng)先 登錄
用C語(yǔ)言實(shí)現(xiàn)狀態(tài)機(jī)設(shè)計(jì)模式
基于入侵行為模式的告警關(guān)聯(lián)
上網(wǎng)行為管理新模式
設(shè)計(jì)模式:備忘錄設(shè)計(jì)模式
設(shè)計(jì)模式:訪問(wèn)者設(shè)計(jì)模式
設(shè)計(jì)模式行為型:備忘錄模式

設(shè)計(jì)模式行為型:策略模式

設(shè)計(jì)模式行為型:觀察者模式

c語(yǔ)言設(shè)計(jì)模式--狀態(tài)模式(狀態(tài)機(jī))

評(píng)論