美文网首页
Java学习笔记(12)-23种设计模式之外观模式

Java学习笔记(12)-23种设计模式之外观模式

作者: 非典型程序猿 | 来源:发表于2020-02-25 16:58 被阅读0次

这篇文章我们开始总结第五种结构型模式,外观模式。在日常的开发中,我们可能需要使用到多个子模块中的方法,那么统一管理使用,也就是外观模式的设计初衷,它可以给客户一个统一接口,而此接口能访问多个子系统,提高了客户使用的便利性。

定义

是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

结构

  • 外观角色 : 为客户提供访问接口的角色
  • 子系统 :为外观角色提供子系统的访问入口
  • 客户 : 访问外观角色,来间接使用子系统。

代码示例

public class MyFacedTest {
    public static void main(String args[]){
        Faced faced = new Faced();
        faced.read();
    }
    /**
     * 子系统A
     */
    static class SubSystemA{
        public void read(){
            System.out.println("访问了子系统SubSystemA的read()方法");
        };
    }
    /**
     * 子系统B
     */
    static class SubSystemB{
        public void read(){
            System.out.println("访问了子系统SubSystemB的read()方法");
        };
    }
    /**
     * 子系统C
     */
    static class SubSystemC{
        public void read(){
            System.out.println("访问了子系统SubSystemC的read()方法");
        };
    }
    /**
     * 外观系统
     */
    static class Faced{
        private SubSystemA systemA = new SubSystemA();
        private SubSystemB subSystemB = new SubSystemB();
        private SubSystemC subSystemC = new SubSystemC();
        public void read(){
            System.out.println("访问了外观系统Faced的read()方法");
            systemA.read();
            subSystemB.read();
            subSystemC.read();
        }
    }
}

实现思路其实很简单,就是将各个子系统的方法调用整合到外观访问系统中,来完成从外观角色的统一调用。

优缺点分析

  • 优点 降低了客户端与子系统之间的耦合度;外观系统整合多个子系统,降低了客户端控制子系统的数量和难度。
  • 缺点 如果要新增一个子系统就可能要修改外观系统的代码;不能很好的控制客户端访问子系统类。
    外观模式比较简单,今天就总结到这里啦,如果对您有帮助记得点个赞~

相关文章

网友评论

      本文标题:Java学习笔记(12)-23种设计模式之外观模式

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