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、测试,运行如下

  • 相关阅读:
    Proxies
    内置的Symbol值
    css兼容问题大全
    Jquery ajax方法详解
    Ajax笔记
    Jquery笔记
    Css3笔记
    JavaScript学习笔记
    10 款优秀的文件管理插件推荐
    初始化和预装载servlet与JSP页面
  • 原文地址:https://www.cnblogs.com/shun-gege/p/7511181.html
Copyright © 2011-2022 走看看