外觀模式 - 多色按壓筆你使過沒精盅?

1 介紹


經(jīng)過上一講代理模式的學(xué)習(xí)帽哑,<a>小白</a>從自動販賣機中買了畫簡筆畫所需要的裝備,聽說還玩了一把大轉(zhuǎn)盤叹俏。

<a>小白</a> : 大哥大哥妻枕,快看,你看我抽到大獎了粘驰,但我不知道這個玩意兒怎么玩屡谐,你幫我看看唄。

多色按壓筆

<a>Acey</a>:我的弟蝌数,膩害了愕掏,這個是多色按壓筆。想要正確的使用它顶伞,我們需要先來了解下外觀模式的概念饵撑。

外觀模式(Facade)是一組類似功能的類群剑梳。

<a>小白</a> :then?
<a>Acey</a> :......,(⊙﹏⊙)肄梨,好吧阻荒,你又沒聽懂,所謂功能類似的類群就好比筆芯众羡,只是每支筆芯的顏色不同侨赡,多支筆芯就形成一個集群,外觀模式呢就是為這類集群封裝了下粱侣,就相當于裝筆芯的筆盒羊壹。對于我們使用者來說,我們只需要拿著這個裝有筆芯的筆盒就可以使用了多種顏色的筆了齐婴。而不需要再去買不同顏色的筆了油猫。
<a>小白</a>:I konw,I know柠偶。那我要怎么使用不同顏色的筆呢情妖?
<a>Acey</a>:我們現(xiàn)在就來看看怎么實現(xiàn)。

2 實現(xiàn)


首先我們要知道外觀模式的幾個角色

  • Facade:為調(diào)用方提供簡單的調(diào)用接口诱担。(筆盒)
  • Package:功能提供者(筆芯)
  • Clients:調(diào)用者毡证。

一步,先準備好筆芯

Red.class / Blue.class / Yellow.class

public class Blue {
    public void write(){
        System.out.println("藍色筆");
    }
}
public class Red {
    public void write(){
        System.out.println("紅色筆");
    }
}
public class Red {
    public void write(){
        System.out.println("紅色筆");
    }
}

二步蔫仙,向筆盒中裝筆芯

Facade.class

public class Facade {
    private Blue blue;
    private Yellow yellow;
    private Red red;
    //裝筆芯
    public Facade() {
        blue = new Blue();
        yellow = new Yellow();
        red = new Red();
    }

    // 使用紅筆
    public void writeRed() {
        red.write();
    }

    // 使用藍筆
    public void writeBlue() {
        blue.write();
    }

    // 使用黃筆
    public void writeYellow() {
        yellow.write();
    }
}

三步料睛,試試好使不

MainClass.class

public class MainClass {
    public static void main(String[] args) {
        Facade pen = new Facade();
        pen.writeBlue();//使用藍筆
        pen.writeRed();//使用紅筆
        pen.writeYellow();//使用黃筆
    }
}
運行結(jié)果

<a>小白</a>:(。^▽^)摇邦,好膩害恤煞,那么我們?yōu)槭裁匆眠@么個模式呀,我們直接去買各個顏色的筆不好嘛施籍?
<a>Acey</a> :你想哦居扒,如果我們?nèi)ベI單個顏色的筆的話,我們可能需要跑好幾個店去買丑慎,如果我們只是去買一個裝有很多筆芯的筆的話我們是不是節(jié)省了很多時間呀喜喂,這樣我們同樣可以使用多種顏色,而且我們只需要關(guān)注筆盒中的筆芯就好了立哑,不需要再去關(guān)注各種顏色的筆了夜惭。
<a>小白</a>:哦哦,原來是這樣铛绰,那么我們要換筆芯的話不就非常麻煩了诈茧?
<a>Acey</a>:沒錯,這就是外觀模式的缺點了捂掰,雖然提高了我們的靈活性敢会,但是筆盒與筆芯之間還是存在耦合的曾沈,不利于后期的修改。
<a>小白</a>:好的鸥昏,b( ̄▽ ̄)d 塞俱,我知道啦,我會好好善待這支筆的吏垮。

喜歡的話戳一下喜歡唄障涯。
有什么建議的話希望大家能在下方回復(fù)(●'?'●)
上一篇:代理模式 - 你買的筆多少錢?
下一篇:組合模式 - 哥膳汪,我被我媽罵了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末唯蝶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子遗嗽,更是在濱河造成了極大的恐慌粘我,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痹换,死亡現(xiàn)場離奇詭異征字,居然都是意外死亡,警方通過查閱死者的電腦和手機娇豫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門匙姜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锤躁,你說我怎么就攤上這事搁料』蛳辏” “怎么了系羞?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長霸琴。 經(jīng)常有香客問我椒振,道長,這世上最難降的妖魔是什么梧乘? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任澎迎,我火速辦了婚禮,結(jié)果婚禮上选调,老公的妹妹穿的比我還像新娘夹供。我一直安慰自己,他們只是感情好仁堪,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布哮洽。 她就那樣靜靜地躺著,像睡著了一般弦聂。 火紅的嫁衣襯著肌膚如雪鸟辅。 梳的紋絲不亂的頭發(fā)上氛什,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音匪凉,去河邊找鬼枪眉。 笑死,一個胖子當著我的面吹牛再层,可吹牛的內(nèi)容都是我干的贸铜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼聂受,長吁一口氣:“原來是場噩夢啊……” “哼萨脑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起饺饭,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤渤早,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瘫俊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹊杖,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年扛芽,在試婚紗的時候發(fā)現(xiàn)自己被綠了骂蓖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡川尖,死狀恐怖登下,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叮喳,我是刑警寧澤被芳,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站馍悟,受9級特大地震影響畔濒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锣咒,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一侵状、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧毅整,春花似錦趣兄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春暴区,著一層夾襖步出監(jiān)牢的瞬間闯团,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工仙粱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留房交,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓伐割,卻偏偏與公主長得像候味,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子隔心,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

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