一、需求说明

  组建一个家庭影院:

  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 对象指派的任务,它是功能的实际提供者。

 

posted on 2021-01-26 22:33  格物致知_Tony  阅读(113)  评论(0编辑  收藏  举报