定义
门面模式:又叫做外观模式,提供一个统一的接口,来访问子系统的一群接口。主要特征是定义一个高层接口,让子系统更容易使用,属于结构型设计模式。
使用场景:
- 为一个复杂模块或者子系统提供一个简洁的供外界访问的接口。
- 希望提高子系统的独立性。
- 提供高层接口,隔离客户端和子系统直接交互,预防代码污染
其实在日常编码中,我们都有意无意地大量使用门面模式。
通用写法
代码很简单。
//A子系统
public class SubSystemA {
public void doA(){
System.out.println("SubSystemA doA");
}
}
//B子系统
public class SubSystemB {
public void doB(){
System.out.println("SubSystemA doB");
}
}
//门面角色
public class Facade {
SubSystemA systemA = new SubSystemA();
SubSystemB systemB = new SubSystemB();
public void doA(){
systemA.doA();
}
public void doB(){
systemB.doB();
}
}
我们客户端不需要知道A子系统和B子系统,只需要有门面角色就行了,使用门面角色去调用相关子系统。
public class Client {
public static Facade facade = new Facade();
public static void main(String[] args) {
facade.doA();
facade.doB();
}
}
类图: