設(shè)計(jì)模式之狀態(tài)模式

狀態(tài)模式

狀態(tài)模式UML.png
interface TransformersState{
    void skill();//變形金剛不同狀態(tài)下有不同技能
}

汽車人接口

class CarTransformersState implements TransformersState{
    public void skill(){
        // 汽車狀態(tài)井佑,技能就是壓馬路吧
    }
}

變形金剛的汽車型狀態(tài)

class FightingTransformersState implements TransformersState{
    public void skill(){
        // 戰(zhàn)斗狀態(tài)密任,技能反正不是壓馬路,就假設(shè)為射擊技能吧
    }
}

變形金剛的戰(zhàn)斗型狀態(tài)

class Context{
    TransformersState mTransformersState;
    public void setState(TransformersState mTransformersState){
    this.mTransformersState = mTransformersState;
    }
    public void skill(){
        mTransformersState.skill();
    }
}

用來管理切換狀態(tài)的類

class Client{
    public static void main(String[] args){
        Context context = new Context();
        context.setState(new FightingTransformersState());//切到戰(zhàn)斗模式
        context.skill();//戰(zhàn)斗狀態(tài)下的技能
        context.setState(new CarTransformersState());//切到跑車模式
        context.skill();//跑車狀態(tài)下的技能
    }
}   

客戶端

狀態(tài)模式的場景一個對象的具體行為取決于這個對象內(nèi)部的狀態(tài),這些狀態(tài)可以被抽象出來單獨(dú)為類者甲。這種模式一定程度上會解決if-else多層判斷的問題。狀態(tài)及某種狀態(tài)的具體實(shí)現(xiàn)可以被抽出去成類,層次會比較清晰岗照,不過類會增多

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市笆环,隨后出現(xiàn)的幾起案子攒至,更是在濱河造成了極大的恐慌,老刑警劉巖躁劣,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迫吐,死亡現(xiàn)場離奇詭異,居然都是意外死亡习绢,警方通過查閱死者的電腦和手機(jī)渠抹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闪萄,“玉大人梧却,你說我怎么就攤上這事“苋ィ” “怎么了放航?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長圆裕。 經(jīng)常有香客問我广鳍,道長,這世上最難降的妖魔是什么吓妆? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任赊时,我火速辦了婚禮,結(jié)果婚禮上行拢,老公的妹妹穿的比我還像新娘祖秒。我一直安慰自己,他們只是感情好舟奠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布竭缝。 她就那樣靜靜地躺著,像睡著了一般沼瘫。 火紅的嫁衣襯著肌膚如雪抬纸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天耿戚,我揣著相機(jī)與錄音湿故,去河邊找鬼阿趁。 笑死,一個胖子當(dāng)著我的面吹牛坛猪,可吹牛的內(nèi)容都是我干的歌焦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼砚哆,長吁一口氣:“原來是場噩夢啊……” “哼独撇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起躁锁,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纷铣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后战转,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搜立,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年槐秧,在試婚紗的時候發(fā)現(xiàn)自己被綠了啄踊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡刁标,死狀恐怖颠通,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膀懈,我是刑警寧澤顿锰,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站启搂,受9級特大地震影響硼控,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胳赌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一牢撼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疑苫,春花似錦熏版、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碰逸。三九已至乡小,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饵史,已是汗流浹背满钟。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工胜榔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人湃番。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓夭织,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吠撮。 傳聞我的和親對象是個殘疾皇子尊惰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容