- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第18章 适配器模式18.1 问题的提出18.2适配器模式18.3默认适配器18.4应用示例18.1问题的提出 也就是说:当我们开发新系统时,生活中采用已有子组件基础上的再开发。在计算机程序设计中也应该考虑这种“子组件”,也即是第三方已开发的软件,那么如何更好地应用第三方软件呢?适配器模式是一个较好的开发思路。18.2适配器模式 抽象来说:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式的宗旨就是,基于现有类所提供的服务,向客户端提供接口,以满足客户的期望。主要分为两类:对象适配器、类适配器。clientThirdCompanyinterfaceIHopeInterface18.2.1对象适配器??+thirdRequest():void+request():voidAdapter-third:ThirdCompany+Adapter(third:ThirdCompany)+request():void图18-1 对象适配器抽象类图各个角色描述如下所示。●IHopeInterface: 定义了客户希望调用的方法形式。●ThirdCompany: 实现功能的第三方软件类。●Adapter:适配器类,内部包含第三方软件成员变量,重写IHopeInterface接口定义的方法,在内部直接调用第三方软件方法实现我们所需功能。●Client:客户端,调用自己需要的领域接口IHopeInterface,实现相应功能。clientThirdCompanyinterfaceIHopeInterface18.2.2类适配器??+thirdRequest():void+request():voidAdapter?+request():void图18-2 类适配器抽象类图各个角色描述如下所示。●IHopeInterface: 定义了客户希望调用的方法形式。●ThirdCompany: 实现功能的第三方软件类。●Adapter:适配器类,从第三方软件类派生,重写IHopeInterface接口定义的方法,在内部直接调用第三方软件方法实现我们所需功能。●Client:客户端,调用自己需要的领域接口IHopeInterface,实现相应功能。18.3 默认适配器 默认适配器是怎样产生的呢?有时我们定义的接口中包含多个方法,如果直接实现此接口,那么需要在子类中实现所有的方法。然而根据不同的需要,可能只用到接口中一个或几个方法,不必要重写接口中定义的所有方法。那么如何解决此问题呢?就是定义默认适配器类。其核心思想是:为原接口类实现一个默认的抽象类,在抽象类中编写每一个接口方法的默认实现。当我们需要编写一个具体类时,只要继承该抽象类,实现需要的重写方法即可。例如:在Java图形用户界面中,窗口侦听WindowListener接口定义了7个接口方法,其源码如下所示。public interface WindowListener extends EventListener{ public void windowActivated(WindowEvent e); public void windowClosed(WindowEvent e); public void windowClosing(WindowEvent e); public void windowDeactivated(WindowEvent e); public void windowDeiconified(WindowEvent e); public void windowIconified(WindowEvent e); publicvoid windowOpened(WindowEvent e);}jdk WindowListener提供了一个WindowListener的默认实现类WindowAdapter类,这是一个抽象类,其源码如下所示。public abstract class WindowAdapter implements WindowListener{ public void windowActivated(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowClosing(WindowEvent e){}public void windowDeactivated(WindowEvent e){}public void windowDeiconified(WindowEvent e){}public void windowIconified(WindowEvent e){} public void wi
您可能关注的文档
最近下载
- 2020上外版新教材高一英语必修一全册课文翻译.doc VIP
- 2022水电工程信息采集规范.pdf VIP
- 2025年海城市面向应届毕业生招聘医疗岗位高层次急需紧缺人才笔试备考试题及答案详解(新).docx
- 欧洲规范-NF P94-117-1-中文.pdf VIP
- DB11∕T1069-2024民用建筑信息模型交付标准.docx VIP
- 中国硫酸黏菌素类产品项目商业计划书.docx
- 2024年世界职业院校技能大赛高职组“环境检测与监测组”赛项考试题库(含答案).docx
- LEGO乐高积木拼砌说明书42146,利勃海尔LR13000履带起重机,LEGO®Technic(年份2023)安装指南_第3份共4份.pdf
- 集团公司绝缘技术监督实施细则.doc
- 中国醇酸防腐涂料项目商业计划书.docx
文档评论(0)