- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
The Adaptor Pattern(适配器模式) 现实生活中的适配器 面向对象软件系统的适配问题 假设我们已经有一个软件系统,原来使用了一个第三方类库A。现在有一个新的第三方类库B,其功能等各方面都更加强大。我们希望用B来替换A,以改善我们的系统。但是B的接口与A不一样。那怎么办呢? 办法之一 办法之一 办法之二 办法之三 第二种方案的优点 Adapter模式 动机 有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配(名称不一样,参数不一样,等等)。 我们可以改变工具箱类使它兼容专业领域中的类的接口,但前提是必须有这个工具箱的源代码。然而即使我们得到了这些源代码,修改工具箱也是没有什么意义的;因为不应该仅仅为了实现一个应用,工具箱就不得不采用一些与特定领域相关的接口 我们不能改变双方,就定义一个适配器类,由它来适配工具箱的接口和专业应用的接口 Adapter模式 定义 将一个类的接口转换成客户端所期望的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 Adapter模式 结构图 Adapter模式 参与者 Ta r g e t C l i e n t使用的与特定领域相关的“接口”。 C l i e n t 与符合Ta rg e t接口的对象协同的专业系统。 A d a p t e e 一个已经存在的“接口”,它具有Client要求的功能但不符合Client的接口要求。这个接口需要适配。 A d a p t e r 对A d a p t e e的接口与Ta rg e t接口进行适配 Adapter模式 协作 Client在A d a p t e r实例上调用一些操作(请求)。接着适配器调用A d a p t e e的操作实现这个请求。 基于类的Adapter模式 基于类的Adapter模式的一般结构如下:Adaptee类为Adapter的父类,Adaptee类为适配源,适配目标(接口)也是Adapter的父类;基于类的Adapter模式比较适合应用于Adapter想修改Adaptee的部分方法的情况。 类Adapter模式 类适配器 用一个具体的A d a p t e r类对A d a p t e e和Ta rg e t进行匹配。结果是当我们想要匹配一个类以及所有它的子类时,类A d a p t e r将不能胜任工作。 使得A d a p t e r可以重定义A d a p t e e的部分行为,因为A d a p t e r是A d a p t e e的一个子类。 仅仅引入了一个对象,并不需要额外的指针以间接得到a d a p t e e。 类适配器 / 已存在的、具有特殊功能、但不符合我们既有的标准接口的类 class Adaptee { public void specificRequest() { System.out.println(被适配类具有 特殊功能...); } } // 目标接口,或称为标准接口 interface Target { public void request(); } // 适配器类,继承了被适配类,同时实现标准接口 class Adapter extends Adaptee implements Target{ public void request() { super.specificRequest(); } } 基于对象的Adapter模式 基于对象的Adapter模式的一般结构如下:Adaptee类对象为Adapter所依赖,适配目标(接口)是Adapter的父类; 基于对象的Adapter模式比较适合应用于Adapter想为Adaptee添加新的方法的情况。但在Adaptee类的方法与Adapter类的方法不同名而实现相同功能的情况下,我们一般也使用基于对象的Adapter模式, 对象适配器 /// 定义客户端期待的接口 public class Target { /// 使用virtual修饰以便子类可以重写 public virtual void Request() { Console.WriteLine(This is a common request); } } /// 定义需要适配的类 public class Adaptee { public void SpecificRequest() { Console.WriteLine(This is a
您可能关注的文档
最近下载
- “三孩”政策背景下山东省农村育龄妇女生育意愿及其影响因素研究.pdf
- Shimano禧玛诺渔具 电动轮BeastMaster MD3000(03876)说明书.pdf
- T_CSAE 88-2018_小型电化学储能电站消防安全技术要求.pdf VIP
- 2025年人形机器人关节电机国产化产业链研究报告.docx VIP
- 水族景观制作与维护 雀鲷科 雀鲷科的识别与饲养.ppt VIP
- 合肥工业大学2021年管理统计学期末考试卷子.pdf
- 危险化学品生产使用企业老旧装置安全风险评估指南.pdf VIP
- 抗浮锚杆_施工方案.docx VIP
- 胸痛中心建设流程及要点教学文案.ppt
- 福建省大学生乡村医生专项招聘笔试真题2024.docx VIP
文档评论(0)