设计模式6-结构模式-外观模式(Facade)重点.ppt

设计模式6-结构模式-外观模式(Facade)重点.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
外观模式(Facade) 提供了一个统一的接口,用来访问子系统中的一群接口。 外观定义了一个高层接口,让子系统更容易使用 家庭影院 建立自己的家庭影院是一股流行的风潮 通过一番比较,你组建了一套杀手级系统,内含DVD播放器、投影机、自动屏幕、环绕立体声,甚至还有爆米花机 * 家庭影院 观赏电影 打开爆米花机 开始爆米花 将灯光调暗 放下屏幕 打开投影机 将投影机的输入切换到DVD 将投影机设置为宽屏模式 打开功放 将功放的输入设置为DVD 将功放设置为环绕立体声 将功放音量调节到中 打开DVD播放器 开始播放DVD 观赏电影的代码 popper.on(); popper.pop(); lights.dim(10); screen.down(); projector.on(); projector.wideScreenMode(); amp.on(); amp.setDvd(dvd); amp.setSurroundSound(); amp.setVolume(5); dvd.on(); dvd.play(movie); 简化观赏电影的操作 构造家庭影院外观 public class HomeTheaterFacade { Amplifier amp; Tuner tuner; DvdPlayer dvd; CdPlayer cd; Projector projector; TheaterLights lights; Screen screen; PopcornPopper popper; public HomeTheaterFacade(Amplifier amp,Tuner tuner, DvdPlayer dvd,CdPlayer cd, Projector projector, Screen screen, TheaterLights lights, PopcornPopper popper) { this.amp = amp; this.tuner = tuner; this.dvd = dvd; this.cd = cd; this.projector = projector; this.screen = screen; this.lights = lights; this.popper = popper; } //其他方法 } 组合,用到的子系统组件都在这里 将子系统组件传入构造器 实现简化的接口 public void watchMovie(String movie){ popper.on(); popper.pop(); lights.dim(10); screen.down(); projector.on(); projector.wideScreenMode(); amp.on(); amp.setDvd(dvd); amp.setSurroundSound(); amp.setVolume(5); dvd.on(); dvd.play(movie); } 轻松观赏电影 Public class HomeTheaterTestDrive{ public static void main(String[] args){ //在这里实例化组件 HomeTheaterFacade homeTheater = new HomeTheaterFacade(amp,tuner,dvd,cd, projector,screen,lights,popper); homeTheater.watchMovie(“Transformer”); } } 最少知识原则 只和你的密友谈话 设计一个系统时,不管是任何对象,都要注意他所交互的类有哪些,并注意他们之间是如何交互的 不要让太多的类耦合在一起,以免修改系统一部分而影响其他部分 * public float getTemp{ return station.getThermometer().getTemprature(); } 减少对象耦合 就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法: 该对象本身 被当做方法的参数而传递进来的对象 此方法所创建或实例化的任何对象 对象的任何组件 * public float getTemp{ Thermometer thermometer = station.getThermometer(); return thermometer.getTemprature(); } public float getTemp{ retur

文档评论(0)

麻将 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档