门面模式,要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。 门面模式提供一个高层次的接口, 使得子系统更易于使用。
系统中各个模块,统一在门面中对外提供访问。
示例代码:
// 模块A
public class ClassA {
public void methodA(){
// 具体业务逻辑
}
}
// 模块B
public class ClassB {
public void methodB(){
// 具体业务逻辑
}
}
// 模块C
public class ClassC {
public void methodC(){
// 具体业务逻辑
}
}
// 门面类
public class Facade {
// 三个模块的实例
private ClassA classA = new ClassA();
private ClassB classB = new ClassB();
private ClassC classC = new ClassC();
// 调用门面的方法即执行对应模块的业务方法
public void methodA(){
this.classA.methodA();
}
public void methodB(){
this.classB.methodB();
}
public void methodC(){
this.classC.methodC();
}
}
门面模式,高层所有的访问都是通过门面对象,不需要深入到各个模块,减少耦合。同时提高了灵活性,子系统的变化不会影响门面,子系统不想暴露的方法,高层也无法通过门面访问。