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

  • 相关阅读:
    springboot 时间戳和 数据库时间相差14个小时
    财富的起源读书笔记1
    高性能mysql读书笔记1
    springboot项目使用 apollo 配置中心
    MongoDB图形化管理工具
    oracle体系结构详解
    三、oracle 体系结构
    用DOS批处理实现FTP自动上传、下载、清理文件
    ORA-01033:ORACLE initialization or shutdown in progress
    从WEB SERVICE 上返回大数据量的DATASET
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1935893.html
Copyright © 2011-2022 走看看