国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)模式的評論 (共 條)

分享到微博請遵守國家法律
巴马| 广灵县| 天峨县| 呼玛县| 萨嘎县| 新河县| 岐山县| 广州市| 外汇| 山丹县| 吴江市| 黄陵县| 闻喜县| 上高县| 铜梁县| 黄石市| 阳曲县| 繁昌县| 揭西县| 龙口市| 荥阳市| 潼关县| 尚志市| 稻城县| 土默特左旗| 邹平县| 两当县| 榆树市| 怀化市| 津市市| 清丰县| 罗甸县| 社会| 察哈| 锡林郭勒盟| 县级市| 义乌市| 深州市| 竹山县| 望江县| 万州区|