门面模式及其应用

2022-06-08  本文已影响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 缺点

上一篇 下一篇

猜你喜欢

热点阅读