* 为了子系统中的一组接口提供一个一致的界面。Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
* 其应用场景就是我们所遇到的问题中我只需要用这个系统的一个子集。
* 也能理解为对一个系统一个封装,对访问者隐藏复杂的逻辑,开放一些必需的的接口。
*有一个原则: 通常它比原始系统的API简单得多。
*希望包装或隐藏所有的系统。
Facade模式的模型
A系统有A1, A2, A3等类。客户端需要调用A系统的的A1.doSomething1();A2.doSomething2();A3.doSomething3()来完成某功能。
Facade模式的实现模型就是:
A系统:
class A1 {
public void doSomething1();
}
class A2 {
public void doSomething2();
}
class A3 {
public void doSomething3();
}
Facade:
public class Facade {
public void doSomething() {
A1 a1 = new A1();
A1 a2 = new A2();
A1 a3 = new A3();
a1.doSomething1();
a2.doSomething2();
a3.doSomething3();
}
}