美文网首页程序员
设计模式之外观模式

设计模式之外观模式

作者: 无聊到学习 | 来源:发表于2020-09-29 00:04 被阅读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");
        }
    }
    

    四、参考链接

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

    相关文章

      网友评论

        本文标题:设计模式之外观模式

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