java設(shè)計(jì)模式10(外觀模式)

外觀模式通過(guò)引入一個(gè)外觀角色來(lái)簡(jiǎn)化客戶端與子系統(tǒng)之間的交互,為復(fù)雜的子系統(tǒng)調(diào)用提供一個(gè)統(tǒng)一的入口,使子系統(tǒng)與客戶端的耦合度降低,且客戶端調(diào)用非常方便。

外觀模式的定義:為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的入口。外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。

外觀模式的結(jié)構(gòu)與實(shí)現(xiàn):
1.Facade(外觀角色):在客戶端可以調(diào)用它的方法,在外觀角色中可以知道相關(guān)的(一個(gè)或多個(gè))子系統(tǒng)的功能和責(zé)任;在正常情況下,它將所有從客戶端發(fā)來(lái)的請(qǐng)求委派到相應(yīng)的子系統(tǒng),傳遞給相應(yīng)的子系統(tǒng)對(duì)象處理。

public class Facade {

    private SubSystem subSystem=new SubSystem();
    
    private SubSystemA subSystemA=new SubSystemA();
    
    private SubSystemB subSystemB=new SubSystemB();
    
    public void myTest() {
        //調(diào)用子系統(tǒng)方法
        subSystem.test();
        subSystemA.testA();
        subSystemB.testB();
    }
}

2.SubSystem(子系統(tǒng)角色):在軟件系統(tǒng)中可以有一個(gè)或者多個(gè)子系統(tǒng)角色,每一個(gè)子系統(tǒng)可以是一個(gè)單獨(dú)類或者一個(gè)類的集合;每一個(gè)子系統(tǒng)都可以被客戶端調(diào)用,或者被外觀角色調(diào)用,它處理由外觀類傳遞來(lái)的請(qǐng)求;子系統(tǒng)并不知道外觀的存在,對(duì)于子系統(tǒng)而言,外觀角色僅僅是另一個(gè)客戶端。

public class SubSystem {

    public void test() {
        System.out.println("實(shí)現(xiàn)子系統(tǒng)業(yè)務(wù)!");
    }
}

public class SubSystemA {

    public void testA() {
        System.out.println("實(shí)現(xiàn)子系統(tǒng)A業(yè)務(wù)!");
    }
}
public class SubSystemB {

    public void testB() {
        System.out.println("實(shí)現(xiàn)子系統(tǒng)B業(yè)務(wù)!");
    }
}

3.Test:

public class Test {

    public static void main(String[] args) {
        Facade facade=new Facade();
        facade.myTest();
    }
}

4.運(yùn)行內(nèi)容:

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

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

  • 目錄 本文的結(jié)構(gòu)如下: 什么是外觀模式 模式的結(jié)構(gòu) 代碼示例 優(yōu)點(diǎn)和缺點(diǎn) 適用環(huán)境 模式應(yīng)用 模式擴(kuò)展 補(bǔ)充 一、...
    w1992wishes閱讀 698評(píng)論 0 1
  • 【學(xué)習(xí)難度:★☆☆☆☆,使用頻率:★★★★★】直接出處:外觀模式梳理和學(xué)習(xí):https://github.com/...
    BruceOuyang閱讀 848評(píng)論 0 0
  • 一、模式定義 外觀模式(Facade Pattern):外部與一個(gè)子系統(tǒng)的通信必須通過(guò)一個(gè)統(tǒng)一的外觀對(duì)象進(jìn)行,為子...
    QuantRuu閱讀 812評(píng)論 0 50
  • 睡前聽(tīng)到了一個(gè)渣男前任的故事,替朋友打抱不平,這些白目真是瞎了眼了沒(méi)了腦了!晚安
    Gigi熊閱讀 316評(píng)論 2 5
  • 不再很愿意掏心窩子的分享開(kāi)懷與不開(kāi)懷的心事,牽一發(fā)而動(dòng)全身的那層,疲憊。 總也晚睡,深夜發(fā)燙的靈魂,...
    靠譜嬸兒閱讀 257評(píng)論 0 0

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