外觀模式

定義:爲子系統的一組接口提供一個一致界面。此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。

還是上個例子

首先定義三個子系統,每個子系統提供一個方法,實際生產中可能有多個不同方法

public class SubSystem1
{
    public void method1()
    {
        System.out.println("method1");
    }
}
public class SubSystem2
{
    public void method2()
    {
        System.out.println("method2");
    }
}
public class SubSystem3
{
    public void method3()
    {
        System.out.println("method3");
    }
}

外觀類,提供了兩個方法,分別對應兩組不同的運算,使得客戶端調用時可以屏蔽對子系統的直接調用

public class Facade
{
    private SubSystem1 sub1;
    private SubSystem2 sub2;
    private SubSystem3 sub3;

    public Facade()
    {
        super();
        this.sub1 = new SubSystem1();
        this.sub2 = new SubSystem2();
        this.sub3 = new SubSystem3();
    }

    public void methodA()
    {
        System.out.println("第一組");
        sub1.method1();
        sub2.method2();
        sub3.method3();
    }

    public void methodB()
    {
        System.out.println("第二組");
        sub2.method2();
        sub3.method3();
    }
}

客戶端調用時,只要調用外觀類就可以鳥

public class FacadeMain
{
    public static void main(String[] args)
    {
        Facade facade = new Facade();
        facade.methodA();
        facade.methodB();
    }
}

總結:這個模式主要是用在客戶端對子系統不好直接訪問,或者訪問權限受限時,

發佈了106 篇原創文章 · 獲贊 49 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章