最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

設(shè)計(jì)模式之狀態(tài)模式總結(jié)篇

標(biāo)簽:
設(shè)計(jì)模式

状态模式总结篇

状态模式总结篇,我们将从以下几个方面对状态模式进行总结。

https://img1.sycdn.imooc.com//5d806d5e0001ac5707950510.jpg

状态模式出现的意图是什么?

通过对象内部状态发生改变进而来改变对象的行为,对象看起来好像是被修改了一样。如,没有糖果的时候(是一个状态),糖果机就不能运行了,有糖果之后(另一个状态),投币就可以出糖果了。

本文出处凯哥Java(kaigejava)讲《23种设计模》系列教程种的《状态模式总结篇》

凯哥公众号:凯哥Java

凯哥个人博客:www.kaigejava.com

主要解决的问题是什么?

对象的行为依赖于对象的状态变化(属性变更),并且根据属性值(状态)的改变而改变相关的行为。如,出不出糖果这个行为受糖果机里面有没有糖果和有没有投币这两个状态影响而改变的。

什么时候或者是什么场景下使用状态模式?

在我们的程序代码中包含和很多与对象状态有关的条件语句(如if……else……或者是switch等)的时候,就可以使用状态模式

如何实现状态模式?

将代码中的各种具体的状态抽象到一个类中。这样就有了状态类抽象对象。

使用状态模式的关键点是什么?

需要和命令模式进行区分。命令模式的接口中,通常情况下只有一个方法,而状态模式的接口中有一个或者多个方法。还有一个不同的地方就是,状态模式的时候其实现类的方法一般是返回一个值或者是改变变量的值的。这是因为,状态模式一般和对象的状态有关。

状态模式的优缺点:

优点:

1:对状态转换规则进行了封装;

2:可以使用枚举类,枚举出所有可能的状态。但是需要在枚举状态之前确定状态的种类;

3:扩展性好。将所有与某个或者某些状态有关的行为放到了一个类对象中,这样方便管理,并且可以方便的新增状态,只需要改变对象状态就可以实现改变对象行为了;

4:代码简洁好维护。状态模式允许状态转换逻辑和状态对象合为一体,而不是一个巨大的条件语句块;

5:可以让多个不同的环境对象共享一个状态的对象,这样减少系统中对象的数量。

缺点:

1:增加对象和系统类的个数;

2:结构与实现比较复杂,如果使用不当,可能会造成程序结构和代码给人感觉很混乱的;

3:对开闭原则支持不好。

使用状态模式需要注意事项:

在行为受到状态约束的时候,使用状态模式,而且需要注意的是:状态最好不要超过5个


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消