最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

分享到微博請遵守國家法律
南京市| 正镶白旗| 富宁县| 敦煌市| 福建省| 晴隆县| 景谷| 高阳县| 岳普湖县| 普陀区| 昆山市| 临沂市| 始兴县| 佛坪县| 巴马| 漾濞| 镇安县| 安塞县| 赤水市| 射洪县| 广安市| 平武县| 上蔡县| 安庆市| 白城市| 小金县| 桂平市| 张家界市| 龙岩市| 左云县| 商水县| 克山县| 江城| 礼泉县| 玉林市| 翁源县| 宾川县| 滁州市| 房山区| 全椒县| 南开区|