在狀態(tài)模式(State Pattern)中,類的行為是基于它的狀態(tài)改變的。這種類型的設(shè)計(jì)模式屬于行為型模式。
在狀態(tài)模式中,我們創(chuàng)建表示各種狀態(tài)的對象和一個(gè)行為隨著狀態(tài)對象改變而改變的 context 對象。
對象的行為依賴于它的狀態(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)境的引用來更換狀態(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)類可以共享,像開關(guān)對象一樣,可以被多個(gè)上下文環(huán)境引用。
核心代碼
抽象狀態(tài)類
具體狀態(tài)類
狀態(tài)類
客戶端
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
狀態(tài)機(jī)
+關(guān)注
關(guān)注
2文章
489瀏覽量
27435
發(fā)布評論請先 登錄
相關(guān)推薦
用C語言實(shí)現(xiàn)狀態(tài)機(jī)設(shè)計(jì)模式
狀態(tài)機(jī)模式是一種行為模式,在《設(shè)計(jì)模式》這本書中對其有詳細(xì)的描述,通過多態(tài)實(shí)現(xiàn)不同狀態(tài)的調(diào)轉(zhuǎn)
發(fā)表于 12-14 13:38
?2768次閱讀
基于入侵行為模式的告警關(guān)聯(lián)
本文提出了一種基于入侵行為模式的告警關(guān)聯(lián)方式。入侵行為模式是定義在時(shí)間基礎(chǔ)上的一組謂詞公式,其實(shí)質(zhì)是通過時(shí)間限制聯(lián)系在一起的入侵事件的集合。該方法在對大量告
發(fā)表于 08-13 08:35
?6次下載
設(shè)計(jì)模式最佳實(shí)踐探索—策略模式
根據(jù)不同的應(yīng)用場景與意圖,設(shè)計(jì)模式主要分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式三類。本文主要探索行為
設(shè)計(jì)模式:備忘錄設(shè)計(jì)模式
備忘錄設(shè)計(jì)模式(Memento Design Pattern)是一種行為型設(shè)計(jì)模式,它的主要目的是在不破壞對象封裝性的前提下,捕捉和保存一個(gè)對象的內(nèi)部
設(shè)計(jì)模式:訪問者設(shè)計(jì)模式
訪問者設(shè)計(jì)模式是一種行為型設(shè)計(jì)模式,用于將算法與對象結(jié)構(gòu)分離。它允許你在不改變對象結(jié)構(gòu)的前提下定義新的操作。
設(shè)計(jì)模式行為型:備忘錄模式
備忘錄模式(Memento Pattern)保存一個(gè)對象的某個(gè)狀態(tài),以便在適當(dāng)?shù)臅r(shí)候恢復(fù)對象。備忘錄模式屬于行為型模式。
設(shè)計(jì)模式行為型:策略模式
在策略模式(Strategy Pattern)中,一個(gè)類的行為或其算法可以在運(yùn)行時(shí)更改。這種類型的設(shè)計(jì)模式屬于行為型模式。
設(shè)計(jì)模式行為型:觀察者模式
定義對象之間的一種一對多依賴關(guān)系,使得每一個(gè)對象發(fā)生狀態(tài)的變化時(shí),其相關(guān)依賴對象皆得到通知并被自動更新,又稱為發(fā)布-訂閱模式、模型-視圖模式、源-監(jiān)聽器模式或從屬者
c語言設(shè)計(jì)模式--狀態(tài)模式(狀態(tài)機(jī))
狀態(tài)模式(狀態(tài)機(jī))是嵌入式開發(fā)中最重要、最核心的設(shè)計(jì)模式之一,毫不夸張的說,是否熟練掌握狀態(tài)模式
評論