zoukankan      html  css  js  c++  java
  • 设计模式(十四)---门面模式

    1、简介

      门面模式通过提供一个可以访问所有接口的一个接口,从而达到隐藏系统复杂性的目的

    2、简单的示意图

      

    3、涉及的角色

      3.1、门面角色:这个角色知晓所有相关的子系统的功能和责任

      3.2、子系统角色:如上图的模块A、B、C 子系统可以被客户端直接调用,也可以被门面角色调用。子系统不知道门面的存在

      3.3、客户端

    4、源代码

      4.1、子系统A

    package Facade;
    /**
     * ********************************************************  
    * @ClassName: ModuleA 
    * @Description: 子系统A
    *  
    **********************************************************
     */
    public class ModuleA {
         //示意方法  
        public void testA(){  
            System.out.println("调用ModuleA中的testA方法");  
        }  
    }

      4.2、子系统B

    package Facade;
    /**
     * ********************************************************  
    * @ClassName: ModuleB 
    * @Description: 子系统B 
    *  
    **********************************************************
     */
    public class ModuleB {
        //示意方法  
        public void testB(){  
            System.out.println("调用ModuleB中的testB方法");  
        }  
    }

      4.3、子系统C

    package Facade;
    /**
     * ********************************************************  
    * @ClassName: ModuleC 
    * @Description: 子系统C
    *  
    **********************************************************
     */
    public class ModuleC {
        //示意方法  
        public void testC(){  
            System.out.println("调用ModuleC中的testC方法");  
        }  
    }

      4.4、门面角色

    package Facade;
    /**
     * ********************************************************  
    * @ClassName: Facade 
    * @Description: 门面角色
    *  
    **********************************************************
     */
    public class Facade {
          //示意方法,满足客户端需要的功能  
        public void test(){  
            ModuleA a = new ModuleA();  
            a.testA();  
            ModuleB b = new ModuleB();  
            b.testB();  
            ModuleC c = new ModuleC();  
            c.testC();  
        }  
    }

      4.5、测试客户端

    package Facade;
    /**
     * ********************************************************  
    * @ClassName: Client 
    * @Description: 门面模式测试客户端
    *  
    **********************************************************
     */
    public class Client {
    
        public static void main(String[] args) {
            Facade facade = new Facade();  
            facade.test();  
        }
    
    }

    5、测试,运行如下

  • 相关阅读:
    Anaconda下载及安装教程
    机器学习之一元线性回归模型
    PyCharm下载及安装教程
    Python基础之数据类型、变量、常量
    新旧代码的兼容(c和c++)
    埃拉托斯特尼--筛法 c++求质数,用bitset类型
    使用预处理器进行调试
    刷题-网易2018实习生招聘笔试题
    深度优先搜索-DFS遍历图-C++
    图--邻接矩阵c++
  • 原文地址:https://www.cnblogs.com/shun-gege/p/7511181.html
Copyright © 2011-2022 走看看