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

  • 相关阅读:
    c++实验9 图及图的操作实验
    Html/CSS 示例演练 图书馆后台界面
    c++实验8 哈夫曼编码-译码器
    Html/CSS 初步介绍html和css部分重要标签
    c++实验7 二叉树
    JavaWeb -学生信息管理实践(JDBC+web+三层架构+DBUtil构造思路)
    java 实验6 图形用户界面设计试验(2)
    操作表与操作表数据行
    数据表操作练习
    数据库的介绍:
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1934319.html
Copyright © 2011-2022 走看看