設(shè)計模式-外觀模式

外觀模式:又叫做門面模式,通過為多個子系統(tǒng)提供統(tǒng)一的接口,通過統(tǒng)一的接口訪問子系統(tǒng)的模式。外部系統(tǒng)無需關(guān)注內(nèi)部系統(tǒng)的實現(xiàn)邏輯。對外來說,降低了系統(tǒng)的復(fù)雜性。

舉個例子:

假設(shè)公司要上馬一個新項目,但是新項目比較特殊,涉及到公司的多個部分,營銷部,后勤部,法務(wù)部等等,需要他們通力合作才能完成,領(lǐng)導(dǎo)就成立了一個臨時的項目組,從各個部分抽調(diào)人手過來。那么項目開始運行的時候,公司外部的客戶需要接觸這個項目的時候就直接找這個臨時的項目組,如果需要和其他部門交流,那就由這個項目組去協(xié)調(diào),而對于公司的客戶來說,就簡單多了。

用代碼實現(xiàn)一下:

各個子系統(tǒng):

// 營銷部
public class YingxiaoBu {
    public void xuanchuan(){
        System.out.println("打個廣告");
    }
}
// 財務(wù)部
public class CaiwuBu {
    public void yusuan(){
        System.out.println("批個預(yù)算");
    }
}
// 后勤部
public class HouqinBu {
    public void zhunbei(){
        System.out.println("材料準(zhǔn)備好");
    }
}

外觀(門面):

public class ProjectFacade {
    private YingxiaoBu yingxiaoBu = new YingxiaoBu();
    private CaiwuBu caiwuBu = new CaiwuBu();
    private HouqinBu houqinBu = new HouqinBu();

    // 把各個子系統(tǒng)的功能進(jìn)行組合以完成特定的任務(wù)
    public void project(){
        System.out.println("項目開始");
        yingxiaoBu.xuanchuan();
        caiwuBu.yusuan();
        houqinBu.zhunbei();
        System.out.println("項目結(jié)束");
    }
}

測試:

public class Client {
    public static void main(String[] args) {
        ProjectFacade projectFacade = new ProjectFacade();
        projectFacade.project();
    }
}

小結(jié)一下:外觀模式是對迪米特法則的具體的實現(xiàn)。其實這種方式在項目的實際開發(fā)中應(yīng)該是有不少使用的。通常我們的項目會有若干個功能相對獨立的子模塊,而有些功能就是需要這些子模塊的部分功能組合來完成,我們就會在一個類中組合子系統(tǒng),然后來完成特定的功能。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文摘一:有些地方外觀模式也被叫做門面模式,英文即Facade Pattern,提前說明一下。 試想這種情況,用戶添...
    _淺墨_閱讀 594評論 0 1
  • 今天我們來學(xué)習(xí)另一種結(jié)構(gòu)型模式,它就是外觀模式(Facade Pattern)。 模式定義 外部與一個子系統(tǒng)的通信...
    HJXANDHMR閱讀 594評論 0 4
  • 一、概念 其目的在于降低系統(tǒng)的復(fù)雜程度! 1.1、定義 又叫門面模式,隱藏系統(tǒng)的復(fù)雜性,并向客戶端提供了一個客戶端...
    雙魚子曰1987閱讀 241評論 0 0
  • 外觀模式 外觀模式是對象的結(jié)構(gòu)模式,外部與一個子系統(tǒng)的通信必須通過一個統(tǒng)一的外觀對象進(jìn)行。外觀模式是一個高層次的接...
    java雅雅閱讀 355評論 0 0
  • 1、外觀模式的概念 外觀模式(Facade),可以理解為,為子系統(tǒng)中的一組接口提供一個一致的界面,此模式定義了一個...
    鋼镚koala閱讀 206評論 0 1

友情鏈接更多精彩內(nèi)容