zoukankan      html  css  js  c++  java
  • 门面模式

    门面模式就是本身是直接打交道的,中间出来一个中间人,中间件帮负责处理。外部只与中间人打交道。如高级医院的导医

    实现

    public class Module {
        /**
         * 提供给子系统外部使用的方法
         
    */
        public void a1(){};
        
        /**
         * 子系统内部模块之间相互调用时使用的方法
         
    */
        public void a2(){};
        public void a3(){};
    }

    复制代码
    复制代码

    public class ModuleB {
        /**
         * 提供给子系统外部使用的方法
         
    */
        public void b1(){};
        
        /**
         * 子系统内部模块之间相互调用时使用的方法
         
    */
        public void b2(){};
        public void b3(){};
    }

    复制代码
    复制代码

    public class ModuleC {
        /**
         * 提供给子系统外部使用的方法
         
    */
        public void c1(){};
        
        /**
         * 子系统内部模块之间相互调用时使用的方法
         
    */
        public void c2(){};
        public void c3(){};
    }

    复制代码

     
    复制代码

    public class ModuleFacade {
        
        ModuleA a = new ModuleA();
        ModuleB b = new ModuleB();
        ModuleC c = new ModuleC();
        /**
         * 下面这些是A、B、C模块对子系统外部提供的方法
         
    */
        public void a1(){
            a.a1();
        }
        public void b1(){
            b.b1();
        }
        public void c1(){
            c.c1();
        }
    }
    这样定义一个ModuleFacade类可以有效地屏蔽内部的细节,免得客户端去调用Module类时,发现一些不需要它知道的方法。比如a2()和 a3()方法就不需要让客户端知道,否则既暴露了内部的细节,又让客户端迷惑。对客户端来说,他可能还要去思考a2()、a3()方法用来干什么呢?其实 a2()和a3()方法是内部模块之间交互的,原本就不是对子系统外部的,所以干脆就不要让客户端知道。

    参考资料:

    http://www.cnblogs.com/java-my-life/archive/2012/05/02/2478101.html

  • 相关阅读:
    postman+newman+jenkins 接口自动化问题
    rabbitMQ Management http://localhost:15672/ 打不开
    转-轻松几步搭建SVN服务器
    Eclipse调优
    转- 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)
    calculate Leave Days
    验证只能输入中文
    js 只能限制只能输入数字和转大写方法
    拿来自勉
    JAVA的容器---List,Map,Set的区别
  • 原文地址:https://www.cnblogs.com/brucetie/p/3814827.html
Copyright © 2011-2022 走看看