程序员

设计模式之外观模式

2020-09-29  本文已影响0人  无聊到学习

一、简介

 它是一种结构型模式,它为子系统的众多接口提供统一的高层接口,使子系统更容易使用。也就是底层有很多基础功能,但有时为了满足不同的业务需求,需要对其中不同的功能进行组合。

 这时我们就可以定义一个中间层,用来保存不同的功能组合,每个功能组合相当于一个高层接口,可以方便调用层调用。

 外观模式就有点类似于我们点肯德基时的一些套餐,每个套餐都是由不同的基础菜品组成,通过合理搭配出不同的套餐,便于顾客选择。

二、应用场景

 在我们实际工作中,外观模式其实也是经常被用到。就比如当我们维护一段旧的代码时,可以将原本比较乱的一些业务逻辑整合出一个新的接口,便于调用
 另外,在构建新项目时,也可以使用“外观”模式,这样既可以保持底层功能的细粒度,又可以为调用者提供方便。

三、举例

public class 外观模式 {

    public static void main(String[] args) {
        Facade facade=new Facade();
        //通过外观模式调用组合接口A
        facade.doThings1();
        //通过外观模式调用组合接口B
        facade.doThings2();

    }

}
//外观类,相当于中间层
class Facade{
    public void doThings1(){//相当于一个高层接口
        SubSystemA a=new SubSystemA();
        SubSystemB b=new SubSystemB();
        a.methodA();
        b.methodB();
    }
    public void doThings2(){
        SubSystemA a=new SubSystemA();
        SubSystemC c=new SubSystemC();
        a.methodA();
        c.methodC();
    }
}
//子系统类,一个类最好只负责一类事情,使其满足单一职责原则
class SubSystemA{
    public void methodA(){
        System.out.println("执行方法A");
    }
}
class SubSystemB{
    public void methodB(){
        System.out.println("执行方法B");
    }
}
class SubSystemC{
    public void methodC(){
        System.out.println("执行方法C");
    }
}

四、参考链接

漫画:设计模式之 “外观模式”

上一篇 下一篇

猜你喜欢

热点阅读