五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

設(shè)計模式:狀態(tài)模式

2021-08-08 10:20 作者:做架構(gòu)師不做框架師  | 我要投稿


什么是狀態(tài)模式

狀態(tài)模式(State Pattern),它允許一個對象其內(nèi)部狀態(tài)改變時改變它的行為。這種模式接近有限狀態(tài)機的概念。狀態(tài)模式可以解釋為策略模式,它能夠通過調(diào)用模式接口中定義的方法來切換策略。

狀態(tài)模式用于封裝同一對象的不同行為,基于其內(nèi)部狀態(tài)。這可以是對象在運行時更改其行為的更簡潔的方式,而無需求助于條件語句,從而提高可維護性。

一句話歸納

狀態(tài)驅(qū)動行為,行為決定狀態(tài)

代碼示例

人的一生會有三種狀態(tài),孩童時期、成年時期還有老年時期,我們在每一個時期都會做一些不同的事。

當(dāng)我們是孩子的時候,家長都會告訴我們“好好學(xué)習(xí),天天向上”,所以學(xué)習(xí)是我們的最重要的事;

當(dāng)我們是一個成年人的時候,身上會漸漸地產(chǎn)生一個叫做責(zé)任的東西,所以男人們就要“賺錢養(yǎng)家”了,當(dāng)一個家的脊梁;

當(dāng)我們是老年人的時候,過上了退休的休閑生活,但我還是勸諫大家,不要去跳“廣場舞”,依然堅持讀書,因為“史使人明智,讀詩使人靈透,數(shù)學(xué)使精細(xì),物理使人深沉,倫理使人莊重,邏輯修辭使人善辯”,希望大家都是一個愛讀書的人。

適用性

以下場景我建議你考慮使用

  • 代碼中含有大量條件、分支判斷語句(諸如if...else、switch)的時候。

  • 行為隨著狀態(tài)改變的時候。

  • 現(xiàn)在很流行的狀態(tài)機就是狀態(tài)模式的強化版。

  • 比如工作流流轉(zhuǎn)、商品訂單等等。

局限性

以下場景我希望你慎重使用

  • 該模式一定會增加系統(tǒng)中對象和類的數(shù)量,會出現(xiàn)類膨脹想想看,所以我們叫它有限狀態(tài)機,建議不超過5個。

  • 結(jié)構(gòu)與實現(xiàn)都較為復(fù)雜,如果使用不當(dāng)會導(dǎo)致程序結(jié)構(gòu)和代碼的混亂。

寫在最后

好兄弟可以點贊并關(guān)注我的公眾號“javaAnswer”,全部都是干貨。



設(shè)計模式:狀態(tài)模式的評論 (共 條)

分享到微博請遵守國家法律
湟中县| 乐都县| 怀集县| 桓仁| 宜兰市| 东乌| 松潘县| 南川市| 枝江市| 庐江县| 和林格尔县| 习水县| 桃源县| 庆元县| 桐乡市| 禄劝| 琼海市| 响水县| 河西区| 浦县| 文水县| 邵武市| 莲花县| 新野县| 张家口市| 竹北市| 宁夏| 锡林郭勒盟| 无为县| 远安县| 巴东县| 新竹县| 民和| 斗六市| 杭州市| 航空| 克东县| 合水县| 曲阳县| 杭锦后旗| 京山县|