• 门面模式


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

    实现

    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

  • 相关阅读:
    angularJS的学习资源,巨全
    JSON语法
    handlerbars入门学习
    js中局部变量和全局变量的易混点
    js中判断一个变量是否为数字类型的疑问
    js中的类型转换方法
    使用sn.exe为程序集签名
    探究Entity Framework如何在多个仓储层实例之间工作单元的实现及原理(2018-05-31、2019-08-16修改部分严重错误代码)
    Fiddler4无法抓取HttpWebRequest本地请求的解决办法
    JS判断时特殊值与boolean类型的转换
  • 原文地址:https://www.cnblogs.com/brucetie/p/3814827.html
Copyright © 2020-2023  润新知