• 外观模式


    1、简介

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

    2、简单的示意图

      

    3、涉及的角色

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

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

      3.3、客户端

    UML示例图

    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 {
        private ModuleA moduleA;
        private ModuleB moduleB;
        private ModuleC moduleC; public void Facade(){ moduleA = new ModuleA(); moduleB = new ModuleB(); moduleC = new ModuleC(); }
      public void testA(){
        moduleA.testA();
      } 
      public void testB(){
        moduleB.testB();
      }
      pulic void testC(){
        moduleC.testC();
      } }
     

      4.5、测试客户端

     
    package Facade;
    /**
     * ********************************************************  
    * @ClassName: Client 
    * @Description: 门面模式测试客户端
    *  
    **********************************************************
     */
    public class Client {
    
        public static void main(String[] args) {
            Facade facade = new Facade();  
            facade.testA();
         facade.testB();
         facade.testC();
    } }
  • 相关阅读:
    开启进程
    操作系统
    多线程(进程)目录
    网络编程-基于UDP协议套接字
    网络编程-文件传输
    EXt js 学习笔记总结
    Sencha Toucha 2.1 文件上传
    Sencha Touch 2.1学习图表Chart概述
    Sencha Touch 2.1 Chart属性中文解释
    Ext.Ajax.request方法 参数
  • 原文地址:https://www.cnblogs.com/lanblogs/p/15175267.html
Copyright © 2020-2023  润新知