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

一、介紹

外觀模式提供一個統(tǒng)一接口去訪問子系統(tǒng)的一組接口,簡化外部客戶端對子系統(tǒng)的調(diào)用,降低客戶端和子系統(tǒng)的耦合度,客戶端不需要關(guān)注子系統(tǒng)復(fù)雜的依賴關(guān)系和實現(xiàn)邏輯,只需要和外觀接口交互即可。

二、代碼實例

子系統(tǒng)1

public class WindowManager {


    public void createWindow(){
        System.out.println("創(chuàng)建一個window");
    }

    public void destroyWindow(){
        System.out.println("銷毀一個window");
    }

}

子系統(tǒng)2

public class Canvas {

    public void draw(){
        System.out.println("繪制一個圖形");
    }

    public void clear(){
        System.out.println("清除空間");
    }

}

子系統(tǒng)3

public class EventManager {

    public void event(){
        System.out.println("一個點擊事件");
    }

    public void remove(){
        System.out.println("刪除一個事件");
    }
}

外觀類

public class PhoneFacade {

    private final WindowManager mWindowManager;
    private final Canvas mCanvas;
    private final EventManager mEventManager;

    public PhoneFacade(WindowManager windowManager, Canvas canvas, EventManager eventManager) {
        this.mWindowManager = windowManager;
        this.mCanvas = canvas;
        this.mEventManager = eventManager;
    }


    public void init(){
        mWindowManager.createWindow();
        mCanvas.draw();
        mEventManager.event();
    }

    public void clear(){
        mEventManager.remove();
        mCanvas.clear();
        mWindowManager.destroyWindow();
    }
}

四、總結(jié)

外觀模式給我的感覺還是挺好理解的,提供一個統(tǒng)一的接口去調(diào)用各個子系統(tǒng),客戶端和外觀類交互,不用去關(guān)心各個子系統(tǒng)的實現(xiàn)細節(jié),感覺就是Java的封裝特性。

?著作權(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)容

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