定義:爲子系統的一組接口提供一個一致界面。此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
還是上個例子
首先定義三個子系統,每個子系統提供一個方法,實際生產中可能有多個不同方法
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();
}
}
總結:這個模式主要是用在客戶端對子系統不好直接訪問,或者訪問權限受限時,