- 4
- 0
- 约3.42千字
- 约 8页
- 2018-01-27 发布于贵州
- 举报
设计模式 - 外观模式精选
HYPERLINK /chenssy/p/3209451.html设计模式读书笔记-----外观模式 前面介绍的适配器模式(设计模式读书笔记-----适配器模式)讲的是如何将一个接口转换成客户所需要的另一个接口,它的目的在于 解决接口的不兼容性问题。现在这里有这样一个模式,它的目的在于如何简化接口,它可以将多个类的复杂的一切隐藏在背后,只显露 出一个干净美观的外观。 晚上睡觉之前,你总是喜欢看电视,在你进入卧室的时候你需要完成以下几个步骤:打开电灯、打开空调、放心银幕(假如你家 有)、打开电视通过这么些繁琐的步骤后你终于可以看电视了,但是你要睡觉了呢?又要去进行繁琐的关闭动作。这里你就需要一个外观 模式了,通过实现一个更加合理的接口外观类将这些动作都包装起来,实现一键“看电视”、一键“关电视”。这就是外观模式的动机 一、模式定义 所谓外观模式就是提供一个统一的接口,用来访问子系统中的一群接口。 外观模式定义了一个高层接口,让子系统更容易使用。如下图,是使用外观模式后将子系统的使用变得更加简单。 在引入外观模式后,客户只需要与外观角色打交道,客户与子系统的复杂关系有外观角色来实现,从而降低了系统的耦合度。 二、模式结构 外观模式包含如下两个角色: Facade: 外观角色 SubSystem:子系统角色 三、模式实现 场景就是上面那个“睡觉看电视”的场景。 实例的UML图 首先是四个组件(电视、电灯、空调、银幕) 1 public class Television { 2 public void on(){ 3 System.out.println(打开了电视....); 4 } 5 6 public void off(){ 7 System.out.println(关闭了电视....); 8 } 9 } 1 public class Light { 2 public void on(){ 3 System.out.println(打开了电灯....); 4 } 5 6 public void off(){ 7 System.out.println(关闭了电灯....); 8 } 9 } 1 public class AirCondition { 2 public void on(){ 3 System.out.println(打开了空调....); 4 } 5 6 public void off(){ 7 System.out.println(关闭了空调....); 8 } 9 } 1 public class Screen { 2 public void up(){ 3 System.out.println(升起银幕....); 4 } 5 6 public void down(){ 7 System.out.println(下降银幕....); 8 } 9 } 然后是比较强大、干净、美观的外观 1 public class WatchTvSwtichFacade { 2 Light light; 3 AirCondition ac; 4 Television tv; 5 Screen screen; 6 7 public WatchTvSwtichFacade(Light light,AirCondition ac,Television tv,Screen screen){ 8 this.light = light; 9 this.ac = ac; 10 this.tv = tv; 11 this.screen = screen; 12 } 13 14 public void on(){ 15 light.on(); //首先开灯 16 ac.on(); //然后是打开空调 17 screen.down(); //把银幕降下来 18 tv
您可能关注的文档
- 设备安装知识课件精选.ppt
- 设备安装质量保证措施精选.doc
- 设备和管道保冷层厚度的计算精选.pdf
- 设备安装吊装方案精选.doc
- 设备巡检细则精选.doc
- 设备安装交底文件精选.pdf
- 设备安装项目管理中遇到的难点及解决对策精选.doc
- 设备房要求精选.doc
- 设备折旧表精选.doc
- 设备检验方案 - 副本精选.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 电商数据分析(微课版)课件全套 第1--10章 电商数据分析概述---数据分析报告与看板制作.pptx
- 异常子宫出血的护理查房.pptx
- 2025年中医执业医师个人工作计划范文.docx VIP
- 2024《中班幼儿饮食行为现状调查—以S幼儿园为例》12000字.docx VIP
- 2025年美容美发十年行业数据洞察报告.docx
- 护理交接班制度.pptx VIP
- 初中电学总复习初中电学总复习.doc VIP
- 北京邮电大学《机器学习》2023-2024学年期末试卷.doc VIP
- 照顾老人保姆合同范本10篇.docx VIP
- 2024年锡林郭勒职业学院单招职业倾向性考试题库必考题.docx VIP
有哪些信誉好的足球投注网站
文档评论(0)