1. 程式人生 > >快速上手設計模式10 - 外觀模式

快速上手設計模式10 - 外觀模式

外觀模式概念:隱藏系統的複雜性,並向客戶端提供了一個客戶端可以訪問系統的介面

很好理解的例子:電腦買好了,只需要按“開機”鍵就開機了,但對系統來講開機過程其實挺複雜的,這個開機鍵就是外觀模式的介面,而系統內部的複雜操作不需要外界知道。

開機過程需要啟動主機板、CPU、記憶體

/** 主機板類 */
public class Mainboard {
    public void startMainboard() {
        System.out.println("正在啟動主機板");
    }
}

/** CPU類 */
public class CPU {
    public
void startCPU() { System.out.println("正在啟動CPU"); } } /** 記憶體類 */ public class Memory { public void startMemory() { System.out.println("正在啟動記憶體"); } }

然後建立外觀類,對外提供一鍵開機功能

public class ComputerFacade {
    private CPU cpu;
    private Mainboard mainboard;
    private Memory memory;

    public
ComputerFacade() { cpu = new CPU(); mainboard = new Mainboard(); memory = new Memory(); } /** 一鍵開機 */ public void startComputer() { mainboard.startMainboard(); cpu.startCPU(); memory.startMemory(); System.out.println("...開機完成..."); } }

客戶端

ComputerFacade facade=new ComputerFacade();
facade.startComputer();//一鍵開機

輸出結果

正在啟動主機板
正在啟動CPU
正在啟動記憶體
...開機完成...

外觀模式的核心就是建立一個外觀類,對外隱藏複雜的內部操作,同時提供一個高層的入口供外部訪問,簡化了客戶端的操作

總結:
1. 外觀模式比較簡單,主要是為複雜的模組或子系統提供外界訪問的簡單入口,因此適用於子模組相對獨立的複雜操作
2. 外觀模式讓各個子模組相互解耦,增加了系統的靈活性