美文网首页
门面模式及其应用

门面模式及其应用

作者: 文景大大 | 来源:发表于2022-06-08 16:11 被阅读0次

一、模式介绍

门面模式又称为外观模式,即提供一个统一的接口或者类,用来访问各个子系统、子模块中的一群接口。在日常开发工作中,但凡只要高层模块需要调用多个子系统,我们都会创建一个新的类来封装这些子系统,以此来提供精简的接口,供高层模块更加容易地间接调用这些子系统的功能。一般而言,各种第三方SDK、开源类库很大概率都是使用门面模式来实现的。

@Slf4j
public class SubSystemA {
    public void transactionA(){
        log.info("子系统A处理业务");
    }
}

@Slf4j
public class SubSystemB {
    public void transactionB(){
        log.info("子系统B处理业务");
    }
}

@Slf4j
public class SubSystemC {
    public void transactionC(){
        log.info("子系统C处理业务");
    }
}
@Slf4j
public class Facade {
    private SubSystemA subSystemA = new SubSystemA();
    private SubSystemB subSystemB = new SubSystemB();
    private SubSystemC subSystemC = new SubSystemC();

    public void dealA() {
        subSystemA.transactionA();
    }

    public void dealB() {
        subSystemB.transactionB();
    }

    public void dealC() {
        subSystemC.transactionC();
    }

    public void dealAll(){
        subSystemA.transactionA();
        subSystemB.transactionB();
        subSystemC.transactionC();
    }
}
public class Main {
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.dealA();
    }
}

在如上门面模式的通用实现中,Facade类封装了各个子系统的功能,使得客户端不用直接对接各个子系统,只要和门面类交互即可享受各个子系统的服务。

二、使用案例

2.1 Spring JdbcUtils

JdbcUtils封装了对Connection、Statement、ResultSet的操作,是JDBC操作的工具门面类;

三、使用总结

3.1 优点

  • 简化调用过程,客户端不用深入了解各个子系统;
  • 减少了系统的依赖,降低了耦合,以前客户端需要和各个子系统耦合,现在客户端只要和门面类耦合即可;
  • 更好地划分了访问层次,提高了安全性;
  • 遵循了迪米特法则,客户端只要知道它应该知道的就行;

3.2 缺点

  • 当增加子系统或者扩展子系统时,需要修改门面类,可能带来风险,不符合开闭原则;
  • 门面类包含了多个子系统的功能,就像一个集线器一样,违背了单一职责原则;

相关文章

  • 门面模式及其应用

    一、模式介绍 门面模式又称为外观模式,即提供一个统一的接口或者类,用来访问各个子系统、子模块中的一群接口。在日常开...

  • Java日志框架:slf4j作用及其实现原理

    简单回顾门面模式 slf4j是门面模式的典型应用,因此在讲slf4j前,我们先简单回顾一下门面模式, 门面模式,其...

  • Facade Design Pattern

    门面模式应用 SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体...

  • 六、门面模式与装饰器模式详解

    8.门面模式 8.1.课程目标 1、掌握门面模式和装饰器模式的特征和应用场景 2、理解装饰器模式和代理模式的根本区...

  • 外观模式

    门面模式意图 通过门面的包装,使应用程序只能看到门面对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度...

  • 52 - 门面模式详解

    本文我们来学习一种新的结构型模式:门面模式。门面模式原理和实现都特别简单,应用场景也比较明确,主要在接口设计方面使...

  • 代理模式及其应用

    一、代理模式简介 代理模式旨在为服务类和客户类之间插入一个代理类,由代理类为客户类进行服务的代理访问。同时也可以对...

  • 组合模式及其应用

    一、模式介绍 组合模式一般用来描述整体与部分的关系,特别适合树形结构的场景。在树形结构中,有三种角色: 根节点,最...

  • 设计模式:工厂+策略+门面模式的应用

    使用工厂+策略模式增加系统的可扩展性 官方定义 工厂模式 定义一个创建对象的接口,让子类决定实例化哪一个类,工厂方...

  • 门面模式

    概念 为了满足一组系统接口使用变得更简单,需要提供统一的访问入口。我们可以将这一组系统接口简化为一个接口,那么也算...

网友评论

      本文标题:门面模式及其应用

      本文链接:https://www.haomeiwen.com/subject/yevumrtx.html