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

  • 相关阅读:
    东边日出西边雨
    ZooKeeper学习(一)了解ZooKeeper
    linux学习(七)文件打包和压缩命令
    linux学习(六)Linux yum 命令
    linux学习(五)Linux 文件与目录管理
    linux学习(四)Linux 文件基本属性
    linux学习(三)Linux 系统目录结构
    linux学习(二)认识Linux
    linux学习(一)认识阿里云
    多线程实战【面试题形式】
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1934319.html
Copyright © 2011-2022 走看看