一.介绍
门面模式(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,提供统一访问接口