一.介绍
门面模式(Facade Pattern)属于结构型模式。通过给多个复杂的子系统提供一个门面(高层接口),使这些子系统更加容易的被访问,客户端与门面直接通信,封装/隐藏背后子系统的细节与复杂度。
二.uml类图
未使用门面模式
使用门面模式
三.具体代码
业务代码
class SubSystem1 {
void operation1(){}
}
class SubSystem2 {
void operation2(){}
}
class SubSystem3 {
void operation3(){}
}
class Facade {
private SubSystem1 subSystem1 = new SubSystem1();
private SubSystem2 subSystem2 = new SubSystem2();
private SubSystem3 subSystem3 = new SubSystem3();
public void doSomething(){
subSystem1.operation1();
subSystem2.operation2();
subSystem3.operation3();
}
}
客户端
public class Client {
private static Facade facade = new Facade();
public static void main(String[] args) {
facade.doSomething();
}
}
四.使用场景
1.继承第三方系统
- 当一个复杂系统的子系统很多时,门面模式可以为系统设计一个简单的接口供外界访问
- 当客户端与多个子系统之间存在很大的联系时,引入门面模式可将它们分离,从而提高子系统的独立性和可移植性
2.组件对外提供API
- 简化组件调用API,提供统一访问接口