外觀模式Facade Pattern
爲子系統的接口提供一個一致的界面,此模式定義了高層接口,使得這一子系統更加容易使用
簡單地說,就是將一個子系統封裝起來,使用一個外觀類控制外部對系統的訪問
//子系統
pubic class Class1{public void method();}
pubic class Class1{public void method();}
pubic class Class1{public void method();}
//外觀對象
public class Facade{
private Class1 c1 = new Class1();
private Class1 c2 = new Class2();
private Class1 c3 = new Class3();
public void method1(){
c1.method();
c3.method();//子系統業務處理
}
}
和中介者模式很像?中介者模式是讓兩個類不直接發生關係,而是通過中介者聯繫,中介者並不偏向於任一方,雙方通過中介者互相和另一方發生關係,關係是雙向的;外觀模式也是讓兩個類不直接發生關係,但是外觀偏向於某一方,另一方通過外觀和某一方發生關係,但某一方不一定甚至不會通過外觀和另一方發生關係,也就是關係偏向於單向關係
減少系統相互依賴,提高靈活性,安全性。
不符合開閉原則,對修改關閉,對擴展開放