zoukankan      html  css  js  c++  java
  • 外观模式(学习笔记11)

    原文:http://c.biancheng.net/view/1369.html

    什么时候用:

    1. 对分层结构系统构建时,使用外观模式定义子系统中每层的入口点可以简化子系统之间的依赖关系。
    2. 当一个复杂系统的子系统很多时,外观模式可以为系统设计一个简单的接口供外界访问。
    3. 当客户端与多个子系统之间存在很大的联系时,引入外观模式可将它们分离,从而提高子系统的独立性和可移植性。

    主要角色:

    1. 外观(Facade)角色:为多个子系统对外提供一个共同的接口。
    2. 子系统(Sub System)角色:实现系统的部分功能,客户可以通过外观角色访问它。
    3. 客户(Client)角色:通过一个外观角色访问各个子系统的功能。

    结构图:

    image

    示例代码:

    package facade;
    
    public class FacadePattern {
        public static void main(String[] args) {
            Facade f = new Facade();
            f.method();
        }
    }
    
    //外观角色
    class Facade {
        private SubSystem01 obj1 = new SubSystem01();
        private SubSystem02 obj2 = new SubSystem02();
        private SubSystem03 obj3 = new SubSystem03();
    
        public void method() {
            obj1.method1();
            obj2.method2();
            obj3.method3();
        }
    }
    
    //子系统角色
    class SubSystem01 {
        public void method1() {
            System.out.println("子系统01的method1()被调用!");
        }
    }
    
    //子系统角色
    class SubSystem02 {
        public void method2() {
            System.out.println("子系统02的method2()被调用!");
        }
    }
    
    //子系统角色
    class SubSystem03 {
        public void method3() {
            System.out.println("子系统03的method3()被调用!");
        }
    }
  • 相关阅读:
    Qt之镜像旋转
    Qt之QCheckBox
    Qt之动画框架
    Qt之QFileSystemWatcher
    Qt之qSetMessagePattern
    Qt之qInstallMessageHandler(重定向至文件)
    Qt之qInstallMessageHandler(输出详细日志)
    Qt之窗体透明
    Qt之窗体拖拽、自适应分辨率、自适应大小
    Qt之设置应用程序图标
  • 原文地址:https://www.cnblogs.com/huiy/p/15566990.html
Copyright © 2011-2022 走看看