第5章 适配器和外观模式.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 适配器和外观模式 回顾 掌握命令模式发出请求对象和执行请求的对象解耦 掌握命令模式的结构与使用 学会使用宏命令,调用多个命令 利用模式和原则设计简单应用程序 目标 掌握适配器模式,当需要使用一个现有的类而其接口并不符合需要时 掌握适配器模式的结构与使用 学会使用双向适配器,单接口适配器 掌握外观模式以及与适配器模式比较 利用模式和原则设计简单应用程序 生活中适配器 面向对象适配器 举例 火鸡对象冒充飞鸟对象 适配器代码 适配器模式解析 解析过程 定义适配器模式 适配器模式: 将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作。 三种角色: ①目标(Target):是一个接口,该接口是客户想使用的接口; ②被适配者(Adaptee):是一个已经存在的接口或抽象类,它需要被适配; ③适配器(Adapter):是一个类,实现了目标接口,并包含被适配者的引用。 适配器模式 特点: ①目标Target和被适配者Adaptee是完全解耦的关系; ②满足“开-闭原则”,当添加一个实现Adaptee接口的新类时,不必修改Adapter,就能对这个新类的实例进行适配。 适配程度 完全适配 不完全适配 剩余适配 在对象适配器模式中,如果Adapter同时实现目标接口和被适配者接口,并包含目标和被适配者的引用,该适配器是一个双向适配器 举例 设计双向适配器,将飞鸟与火鸡对象相互冒充 运行 单接口适配器 在Java中最常见一种适配器,利用已经实现该接口的类,继承它重写我们需要的方法即可. 外观模式Facade Facade模式 简化用户和子系统进行交互的模式,其关键是为子系统提供一个外观类,该外观类的实例负责与子系统中的类的实例打交道。 两种角色: ①子系统(Subsystem):是若干类的集合,这些类的实例协同合作为用户提供所需要的功能,子系统中任何类不包含外观类的实例引用 ②外观(Facade):是一个类,包含子系统中全部或部分类的实例引用,客户只需和外观类实例打交道。 举例 报社广告子系统:检查广告字数、计算费用、排版。一个用户需要登广告只需将广告内容交给报社即可。 代码 运行 Fa?ade模式特点 定义:提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 特点: ①使客户与子系统中类无耦合,使子系统用起来更加方便; ②外观只是提供一个更加简洁的界面,并不影响用户使用子系统中的类; ③子系统中的任何类对其方法的修改不影响外观的使用。 两个模式比较 总结 掌握适配器模式,当需要使用一个现有的类而其接口并不符合需要时 掌握适配器模式的结构与使用 学会使用双向适配器,单接口适配器 掌握外观模式以及与适配器模式比较 利用模式和原则设计简单应用程序 设计模式 设计模式 交流电适配器 将一种接口转换成另外 一种接口 被适配者 目标 适配器 两个接口无法匹配, 无法工作 这个适配器将一个类的接口(被适配者)转换成客户希望的 另外一个接口(目标) interface A methodA():void AdapterA (目标) b:B(被适配者引用) methodA():void void methodA(){ b.methodB(); } 适配器 interface B methodB():void Think methodB():void 适配器实现了目标接口,并持有 被适配者的实例 被适配者接口 适配器 目标接口 客户 request() translatedrequest() ①客户通过目标接口调用适配器的方法对适配器发出请求; ②适配器使用被适配者接口把请求转换成被适配者的一个 或多个调用 ③客户接收到调用的结果,但并没察觉这一切是适配器 在起转换作用 家庭影院 将灯光调暗 放下屏幕 打开投影机 将投影机的输入切换DVD 打开功放 将功放音量调到5 打开DVD播放器 开始播放DVD 子系统 看完电影后,关闭设备 客户 外观类 Facade 累人,还要打开这么多开关! 子系统 外观类 将一群对象“包装”起来以简化其接口 将一个对象包装起来以改变其接口 将客户从一个复杂子系统中解耦 可以改变接口以符合客户的期望 当需要简化并统一一个很大接口或一群复杂接口时 当需要使用一个现有类而其接口并不符合需要时 外观模式 适配器模式

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档