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

    外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式

    外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式。一般而言,Facade模式是为了 降低子系统之间,客户端与实现化层之间的依赖性。当在构建一个层次化的系统时,也可以同过使用Facade模式定义系统中每一层的入口,从而简化层与层之 间的依赖关系。

    其简单实现如下图所示(左边是没有使用Facade模式示意图):


    2.测试
    systemA.java
    package facade;

    /*
     * A
    子系统
     */  
    public class SystemA {  
        /*
         * A
    子系统实现功能
         */  
         public void doSomething() {  
             System.out.println("
    实现A子系统功能");  
         }  
    }

    SystemB.java
    package facade;

    /*
     * B
    子系统
     */  
    public class SystemB {  
        /*
         * B
    子系统实现功能
         */  
         public void doSomething() {  
             System.out.println("
    实现B子系统功能");  
         }  
    }

    SystemC.java
    package facade;

    /*
     * C
    子系统
     */  
    public class SystemC {  
        /*
         * C
    子系统实现功能
         */  
         public void doSomething() {  
             System.out.println("
    实现C子系统功能");  
         }
    }

    Facade.java
    package facade;

    public class Facade {  
        private SystemA systemA;  
        private SystemB systemB;  
        private SystemC systemC;  
           
        public Facade() {  
            systemA = new SystemA();
            systemB = new SystemB();  
            systemC = new SystemC();
        }  

        public void doABC() {  
            this.systemA.doSomething();  
            this.systemB.doSomething();  
            this.systemC.doSomething();  
        }  

        public void doAB() {  
            this.systemA.doSomething();  
            this.systemB.doSomething();  
        }  
     }

    Client.java
    package facade;

    public class Client {  
        public static void main(String[] args) {  
            Facade facade = new Facade();  
            facade.doABC();

            facade.doAB();
        }  
    }

    输出如下:
    实现A子系统功能
    实现B子系统功能
    实现C子系统功能
    实现A子系统功能
    实现B子系统功能

  • 相关阅读:
    python uiautomator,比 appium 更简单的 app 测试工具
    Python 经典面试题(一)
    python 虚拟环境配置
    python 路径操作工具 pathlib,比 os 模块好用太多
    如何使用python records 库优雅的操作数据库
    使用 tablib 来自动化管理测试用例,其他的工具都不用学了
    allure 这么高大上的测试报告环境,5 分钟搞定
    学会这些 pycharm 编程小技巧,编程效率提升 10 倍
    stack,unstack,groupby,pivot_table的区别
    count(),列表推导式,transpose()
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1934319.html
Copyright © 2011-2022 走看看