• 外观模式(学习笔记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()被调用!");
        }
    }
  • 相关阅读:
    CSS 之 div中文字超出时自动换行
    架构设计分享之权限系统(看图说话)
    perl杂项
    nginx比较apache
    Apache与Nginx的优缺点比较
    DVB系统中PCR的生成和PCR校正
    相关软件测试工具
    我遇到的有趣面试题:破解程序
    OpenStack 部署运维实战
    一些大公司的开源项目及代码托管平台
  • 原文地址:https://www.cnblogs.com/huiy/p/15566990.html
Copyright © 2020-2023  润新知