门面模式:Facade Pattern,提供了一个统一的接口,用来访问子系统中的一群接口
- 其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构型设计模式
应用场景:
- 为一个复杂的模块或子系统提供一个简洁的供外界访问的接口
- 希望提高子系统的独立性时
- 当子系统由于不可避免的暂时原因导致可能存在Bug或性能相关问题时,可以通过门面模式提供一个高层接口,隔离客户端与子系统的直接交互,预防代码污染
public class FacadeDemo {
public static void main(String[] args) {
// 门面模式一般是用来整合系统的复杂API,对外提供统一的功能
Facade facade = new Facade();
facade.doA();
facade.doB();
facade.doC();
}
static class Facade {
private SubSystemA systemA = new SubSystemA();
private SubSystemB systemB = new SubSystemB();
private SubSystemC systemC = new SubSystemC();
public void doA() {
systemA.doA();
}
public void doB(){
systemB.doB();
}
public void doC(){
systemC.doC();
}
}
static class SubSystemA{
// 子系统A
public void doA() {
System.out.println("A系统提供的功能");
}
}
static class SubSystemB{
public void doB() {
System.out.println("B系统提供的功能");
}
}
static class SubSystemC{
public void doC() {
System.out.println("C系统提供的功能");
}
}
}