外观模式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();//子系统业务处理
}
}
和中介者模式很像? 中介者模式是让两个类不直接发生关系,而是通过中介者联系,中介者并不偏向于任一方,双方通过中介者互相和另一方发生关系,关系是双向的; 外观模式也是让两个类不直接发生关系,但是外观偏向于某一方,另一方通过外观和某一方发生关系,但某一方不一定甚至不会通过外观和另一方发生关系,也就是关系偏向于单向关系
减少系统相互依赖,提高灵活性,安全性。
不符合开闭原则,对修改关闭,对扩展开放