java設(shè)計模式——外觀模式

1.外觀模式(Facade Pattern)

外觀模式 隱藏系統(tǒng)的復(fù)雜性涝桅,并向客戶端提供了一個客戶端可以訪問系統(tǒng)的接口。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式原在,它向現(xiàn)有的系統(tǒng)添加一個接口那先,來隱藏系統(tǒng)的復(fù)雜性。


2.代碼實現(xiàn)

場景:顧客在寄郵件時抄腔,只用關(guān)心郵件的內(nèi)容和地址瓢湃,不用去關(guān)心復(fù)雜的郵寄過程。

  • 寄郵件過程接口(LetterProcess)
public interface LetterProcess {
    /**
     * 顧客寫信
     * @param context
     */
    void write(String context);

    /**
     * 顧客填寫郵寄地址
     * @param address
     */
    void envelope(String address);

    /**
     * 郵局進行郵件分類
     */
    void postoffice();

    /**
     * 郵局通過汽車送郵件
     */
    void sendMail();
}

  • 實現(xiàn)寄件接口
public class SendMaiPersonl implements LetterProcess {
    @Override
    public void write(String context) {
        System.out.println("郵件內(nèi)容:"+context);
    }

    @Override
    public void envelope(String address) {
        System.out.println("郵件地址:"+address);
    }

    @Override
    public void postoffice() {
        System.out.println("郵局通過省區(qū)分類郵件");
    }

    @Override
    public void sendMail() {
        System.out.println("郵局通過汽車派送郵件");
    }
}
  • 外觀模式(Appearance)
public class Appearance {
    private LetterProcess sendMaiPersonl = new SendMaiPersonl();

    public void sendLetter(String context,String address){
        this.sendMaiPersonl.write(context);
        this.sendMaiPersonl.envelope(address);
        this.sendMaiPersonl.postoffice();
        this.sendMaiPersonl.sendMail();
    }
}
  • 顧客(Client)
public class Client {

    public static void main(String[] args) {
        Appearance appearance = new Appearance();
        appearance.sendLetter("愿你被這世界溫柔以待,即使生命總以刻薄荒蕪相欺","遠方的朋友");
    }
}

  • 運行結(jié)果:


  • 優(yōu)點
    1赫蛇、減少系統(tǒng)相互依賴绵患。
    2、提高靈活性悟耘。
    3落蝙、提高了安全性。
  • 缺點:
    不符合開閉原則暂幼,如果要改東西很麻煩筏勒,繼承重寫都不合適。
  • 使用場景:
    1旺嬉、為復(fù)雜的模塊或子系統(tǒng)提供外界訪問的模塊管行。
    2、子系統(tǒng)相對獨立邪媳。
    3捐顷、預(yù)防低水平人員帶來的風(fēng)險。
    (總結(jié)參考:菜鳥教程)
當(dāng)前文集 :Java設(shè)計模式
代碼:GitHub
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雨效,一起剝皮案震驚了整個濱河市迅涮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌徽龟,老刑警劉巖叮姑,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異据悔,居然都是意外死亡传透,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門屠尊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人耕拷,你說我怎么就攤上這事讼昆。” “怎么了骚烧?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵浸赫,是天一觀的道長。 經(jīng)常有香客問我赃绊,道長既峡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任碧查,我火速辦了婚禮运敢,結(jié)果婚禮上校仑,老公的妹妹穿的比我還像新娘。我一直安慰自己传惠,他們只是感情好迄沫,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著卦方,像睡著了一般羊瘩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盼砍,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天尘吗,我揣著相機與錄音,去河邊找鬼浇坐。 笑死睬捶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吗跋。 我是一名探鬼主播侧戴,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼跌宛!你這毒婦竟也來了酗宋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤疆拘,失蹤者是張志新(化名)和其女友劉穎蜕猫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哎迄,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡回右,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了漱挚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翔烁。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖旨涝,靈堂內(nèi)的尸體忽然破棺而出蹬屹,到底是詐尸還是另有隱情,我是刑警寧澤白华,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布慨默,位于F島的核電站,受9級特大地震影響弧腥,放射性物質(zhì)發(fā)生泄漏厦取。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一管搪、第九天 我趴在偏房一處隱蔽的房頂上張望虾攻。 院中可真熱鬧铡买,春花似錦、人聲如沸台谢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朋沮。三九已至蛇券,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間樊拓,已是汗流浹背纠亚。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留筋夏,地道東北人蒂胞。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像条篷,于是被迫代替她去往敵國和親骗随。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

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