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

2020-02-25  本文已影响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();
        }
    }
}

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

优缺点分析

上一篇 下一篇

猜你喜欢

热点阅读