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子系统功能

  • 相关阅读:
    产品思维和用户思维
    IT界是丽春院?
    凡事要讲究方式方法
    一个比较差的接口定义
    软件开发中的官话和土话
    Frida之app逆向hook,动态插装
    Airtext远程控制多台手机
    linux下使用uwsgi部署flask写的接口遇到的坑
    软件质量管理(六)- 无有规矩不成方圆
    软件质量管理(五)- 质量优异的产品离不开一支优秀的团队
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1934319.html
Copyright © 2011-2022 走看看