zoukankan      html  css  js  c++  java
  • 第一节:外观模式——需求说明&基本介绍

    一、需求说明

      组建一个家庭影院:

      DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为:

       直接用遥控器:统筹各设备开关

        ① 开爆米花机;

        ② 放下屏幕;

        ③ 开投影仪;

        ④ 开音响;

        ⑤ 开 DVD,选 dvd;

        ⑥ 去拿爆米花;

        ⑦ 调暗灯光;

        ⑧ 播放;

        ⑨ 观影结束后,关闭各种设备

    二、传统方式解决影院管理

      1、需求分析,UML 类图

      2、传统方式解决影院管理问题分析

       (1)在 ClientTest 的 main 方法中,创建各个子系统的对象,并直接去调用子系统(对象)相关方法,会造成调用过程混乱,没有清晰的过程;

       (2)不利于在 ClientTest 中,去维护对子系统的操作;

       (3)解决思路:定义一个高层接口,给子系统中的一组接口提供一个一致的界面(比如在高层接口提供四个方法 ready、play、pause、end),用来访问子系统的一群接口;

       (4)也就是说通过定义一个一致的接口(界面类),用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节=>外观模式。

    三、外观模式基本介绍

      1、基本介绍—外观模式(Facade)

        (1)外观模式(Facade),也叫“过程模式”,外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

        (2)外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。

      2、外观模式的原理类图

        

        外观模式原理类图的说明:

         (1)外观类(Facade):为调用端提供统一的调用接口,外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给适当子系统对象;

        (2)调用者(Client):外观接口的调用者

        (3)子系统的集合:指模块或者子系统,处理 Facade 对象指派的任务,它是功能的实际提供者。

  • 相关阅读:
    HBase导入数据同时与Phoenix实现同步映射
    Hive导入数据到HBase,再与Phoenix映射同步
    CDH5.16.1离线集成Phoenix
    设计原则学习笔记
    Maven安装配置
    SpringBoot之Mybatis操作中使用Redis做缓存
    Linux服务器防火墙白名单设置
    Linux查看端口占用情况,并强制释放占用的端口
    shell脚本切割tomcat日志文件
    mysql读写分离
  • 原文地址:https://www.cnblogs.com/niujifei/p/14332783.html
Copyright © 2011-2022 走看看