Java設計模式 之 外觀模式

Java設計模式 之 外觀模式

外觀模式在設計模式中是比較簡單,假設我們現在要模擬小米手機開機到關機的過程,小米由 CPU屏幕揚聲器 組成,新建代碼如下:

//CPU
public class CPU {

    public void start() {

    }

    public void end() {

    }
}

//屏幕
public class Screen {

    public void on() {

    }

    public void off() {

    }
}

//揚聲器
public class Speaker {

    public void open() {

    }

    public void stop() {

    }
}

我們一般測試一個手機開關機,需要經過開啓CPU,屏幕,揚聲器,關閉CPU,屏幕,揚聲器等過程,代碼如下:

public class PhoneController {

    private static CPU cpu = new CPU();
    private static Screen screen = new Screen();
    private static Speaker speaker = new Speaker();

    public static void main(String[] args) {

        // 開關機
        cpu.start();
        screen.on();
        speaker.open();

        cpu.end();
        screen.off();
        speaker.stop();

    }   
}

我們會發現開啓手機的流程是否複雜,假設如果我們開機還需要增加其他操作, 比如開啓震動器,又需要增加代碼且不易整理 ,這時候我們就可以使用外觀模式,暴露個接口出來。

外觀模式實現

如我們新建一個小米手機,模擬開機關機兩種狀態,並把對應的操作放進去,代碼如下:

public class XiaoPhone {

    private CPU cpu = new CPU();
    private Screen screen = new Screen();
    private Speaker speaker = new Speaker();

    // 開機
    public void start() {
        cpu.start();
        screen.on();
        speaker.open();
    }

    // 關機
    public void end() {
        cpu.end();
        screen.off();
        speaker.stop();
    }

}

在下面只需要執行下面的幾句代碼,把具體的操作隱藏在內部,代碼如下:

    XiaoPhone phone = new XiaoPhone();
    phone.start();
    phone.end();

我們最後來看,外觀模式的定義,外觀模式 提供了一個統一的接口,用來訪問子系統中的一羣接口。外觀模式定義了一個高層接口,讓子系統更容易使用。
統一的接口 :開機 / 關機
子系統中的一羣接口 : 開啓CPU,屏幕,揚聲器 / 關閉CPU,屏幕,揚聲器

其他模式可點擊鏈接進目錄閱讀了解http://blog.csdn.net/xiao_wanzi94/article/details/78118092

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章