外观模式:提供了一个统一的接口,用来访问子系统中的一群接口或者一个很大的接口,总之外观模式的目的是简化并统一其他的接口。与适配器不同的是,它不会修改其他的接口,只是将客户从一个复杂的子系统中解耦出来。

public class Airconditioner {int tempture;public void turnOn(){System.out.println("开空调");}public void turnOff(){System.out.println("关掉空调");}public void setTempture(int tempture){this.tempture = tempture;}}
public class Fridge {int level ; public void turnOn(){System.out.println("冰箱插上电源");}public void turnOff(){System.out.println("关掉冰箱");}public void setLevel(int level){this.level = level;}public int getLevel(){return level;}
}
public class TV {public void turnOn(){System.out.println("打开电视");}public void turnOff(){System.out.println("关掉电视");}public void showCCTV(){System.out.println("收看央视新闻");}}
public class  HomeElectronicsController {TV tv;Fridge fridge;Airconditioner airconfitioner;public HomeElectronicsController(TV tv, Fridge fridge, Airconditioner airconditioner){this.tv = tv;this.fridge = fridge;this.airconfitioner = airconditioner;}public void turnOnAll(){tv.turnOn();tv.showCCTV();fridge.setLevel(3);airconfitioner.setTempture(28);}public void turnOffAll(){tv.turnOff();fridge.turnOff();airconfitioner.turnOff();}}

当用户需要打开所有家电的时候,只需要调用HomeElectronicsController的turnOn()方法,而无需调用各个家电,但是外观模式并没有改变各个家电的接口,只是简化了用户的访问。如果用户需要访问子系统中的各个组件,还是可以直接访问的。这是外观模式和适配器模式最大的区别。

  • 大小: 3.4 KB
  • 查看图片附件

HeadFirst设计模式_读书笔记_007_外观模式相关推荐

  1. 《HeadFirst设计模式》读书笔记-第9章v3-组合迭代器

    定义 组合迭代器不是一个设计模式,是指如何在组合中使用迭代器.所以本章的代码是基于<HeadFirst设计模式>读书笔记-第9章v2-组合模式 修改过来的,需要先熟悉组合模式. 代码实现 ...

  2. 《headfirst设计模式》读书笔记9-迭代器和组合模式

    目录 1. 封装遍历 2. 定义迭代器模式 2.1 部分源码 2.1.1 MenuItem.h 2.1.2 Menu.h 2.1.3 Iterator.h 2.1.4 ArrayIterator.h ...

  3. 《HeadFirst设计模式》读书笔记-第9章v1-迭代器模式

    定义 迭代器模式(iterator pattern)提供了一种方法顺序访问一个集合对象中的各个元素,而又不暴露其内部的表示. 代码实现 下面以JDK现有的Iterator的例子来说明适配器模式使用. ...

  4. 《HeadFirst设计模式》读书笔记-第9章v2-组合模式

    定义 组合模式(composite pattern)允许你将对象组合成树形结构来表现"整体/部分"层次结构.组合能让客户以一致的方式处理个别对象以及对象组合. 代码实现 本章使用组 ...

  5. 《设计模式》读书笔记——创建型模式

    设计模式 创建模式 定义: 创建型模式抽象了实例化过程.他们帮助一个系统独立于如何创建.组合和表示它的那些对象 一个类创建型模式使用继承改变被实例化的类,而一个对象创建模式是将实例化委托给另一个对象 ...

  6. 《HeadFirst设计模式》读书笔记-第2章-观察者模式

    定义 观察者模式(observer pattern)定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会接收到通知并自动更新. 类图 代码实现 下面以气象站为例子,说明观察者 ...

  7. 《Head First 设计模式》读书笔记六--克隆模式

    克隆模式 简介 深入理解克隆模式,出现的意义在于反复创建一样的对象,影响JAVA程序的效率. 克隆模式的优势在于底层调用了C,实现了内存之间的复制. 克隆模式区分: 1.浅克隆:在复制对象的时候里面的 ...

  8. 《Head First设计模式》 读书笔记16 其余的模式(二) 蝇量 解释器 中介者

    <Head First设计模式> 读书笔记16 其余的模式(二) 蝇量 解释器 中介者 蝇量(Flyweight Pattern) 如想让某个类的一个实例能用来提供许多"虚拟实例 ...

  9. 设计模式之禅读书笔记—行为类模式

    设计模式之禅读书笔记-行为类模式 PDF下载地址 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 责任链模式 定义:使多 ...

最新文章

  1. java面向过程和面向对象
  2. LeetCode 922 Sort Array By Parity II 解题报告
  3. maven+eclipse编译常见问题
  4. 用c语言读取固定大小的raw格式图像并统计灰度值
  5. python列表对象相同_Python中的学习列表对象,List
  6. 在 Visual Studio 2019 中为 .NET Core WinForm App 启用窗体设计器
  7. java实现泛型检索_高级Java泛型:检索泛型类型参数
  8. keil 查看 stm32 io波形_你知道 KEIL 自带示波器吗?
  9. reinterpret_cast和static_cast的总结
  10. 8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset
  11. 《深入理解OSGi:Equinox原理、应用与最佳实践》笔记_1_运行最简单的bundlehelloworld...
  12. java 不规则图形_java 根据点画不规则封闭图形
  13. 每日一道算法题--leetcode 179--最大数--python
  14. 计算机应用基础选择题占多少分,计算机应用基础练习题(选择题部分)..doc
  15. 2022-2028全球全站仪市场现状及未来发展趋势
  16. Jemalloc安装
  17. ITIL 4Foundation题目-2
  18. 中国最卷的公务员考试,挤满清北毕业生
  19. PhD-Debate 预告 | 底层视觉研究,我们应该往哪走?
  20. 如何清除 Linux 命令行历史记录

热门文章

  1. 麻省理工学院计算机博士_代码可以自我意识吗? 在麻省理工学院学习计算机科学的思考(第一部分)...
  2. virtualbox设置中文
  3. Win7系统下解决魔兽争霸全屏问题
  4. 高效管理,原来这么简单
  5. 什么台灯护眼效果好?保护视力护眼灯推荐
  6. 42所一流大学建设高校名单
  7. About Internet
  8. 256色无压缩BMP文件格式
  9. SDDCN架构下的DC内部负载均衡策略-ECMP
  10. Unity中刚体使用--坦克炮塔旋转