随笔 - 1162  文章 - 0  评论 - 16  阅读 - 59万 

一、需求说明

  组建一个家庭影院:

  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   格物致知_Tony  阅读(114)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2020-01-26 Java 之 IO操作-文件复制
点击右上角即可分享
微信分享提示

目录导航