菜鸟笔记
提升您的技术认知

门面模式

一.介绍

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