门面模式(Facade Pattern)
定义
又叫外观模式,提供了一个统一的接口,用来访问子系统中的一群接口。
门面模式定义了一个高层接口,让子系统更容易使用。
属于结构型模式。
门面模式的重点在于封装;静态代理的重点在于增强。
门面模式有时会做成单例,比如工具包。
适用场景
1.子系统越来越复杂,增加门面模式提供简单接口;
2.构建多层系统结构,利用门面对象作为每层的入口,简化层间调用。
标准示例
Facade
门面类,提供一个简化的接口,封装了系统的复杂性。外观模式的客户端通过与外观对象交互,而无需直接与系统的各个组件打交道。
public class Facade{
private SubsystemA a = new SubsystemA();
private SubsystemB b = new SubsystemB();
private SubsystemC c = new SubsystemC();
public void doA(){
this.a.doA();
}
public void doB(){
this.b.doB();
}
public void doC(){
this.c.doC();
}
}
Subsystem
子系统,由多个相互关联的类组成,负责系统的具体功能。外观对象通过调用这些子系统来完成客户端的请求。
public class SubsystemA{
public void doA(){
System.out.println("A");
}
}
public class SubsystemB{
public void doB(){
System.out.println("B");
}
}
public class SubsystemC{
public void doC(){
System.out.println("C");
}
}
Client
:客户端,使用外观对象来与系统交互,而不需要了解系统内部的具体实现。
public class ClientTest{
public static void main(String[] args){
Facade facade = new Facade();
facade.doA();
facade.doB();
facade.doC();
}
}
实际开发中的controller,调用了service中的方法,就是门面模式的体现。
以上就是 门面模式的全部内容,感谢阅读。