版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录 1. 适配器模式2. 迭代器模式适配器模式假设有一个软件系统,希望它能和一个新的厂商类库搭配使用,但是这个新厂商所设计出来的接口,不同于旧厂商的接口1、情景描述现有系统厂商类适配器模式1、情景描述 不想改变现有代码,也不能改变厂商的代码,怎么办?现有系统厂商类适配器比如第三方开发组件,该组件接口与我们自己系统的接口不相同,或者由于某种原因无法直接调用该组件,可以考虑适配器。适配器模式2、定义作用:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之
2、外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。分类:适配器模式分为类适配器模式和对象适配器模式。3、适配器介绍适配器模式该适配器模式所涉及的角色包括:目标(Target)角色:这是客户所期待的接口。因为C#不支持多继承,所以Target必须是接口,不可以是类。源(Adaptee)角色:需要适配的类。适配器(Adapter)角色:把源接口转换成目标接口。这一角色必须是类client希望使用的是Target.request(),而既有类使用的是Adaptee.SpecificRequest(),request()和SpecificR
3、equest()可能在返回值,参数列表都不同,类适配器模式和对象适配器模式都是通过嫁接一个Adapter进行转换。4、类适配器UML图适配器模式适配器模式5、对象适配器UML图6、两种适配器模式比较类适配器对象适配器1、在Adapter类中可以对Adaptee类的方法进行重定义;2、如果在Adaptee中添加了一个抽象方法,那么Adapter也要进行相应的改动高耦合;3、在Adapter中无法调用Adaptee其它子类的方法。1、不是很容易去构造一个Adaptee类型的对象;2、Adaptee中添加新的抽象方法时,Adapter类不需要做任何调整;3、可以使用多态的方式在Adapter类中调用
4、Adaptee类子类的方法。适配器模式7、结论由于对象适配器的耦合度比较低,所以在很多的书中都建议使用对象适配器。在我们实际项目中,也是如此,能使用对象组合的方式,就不使用多继承的方式。适配器模式迭代器模式1、情景描述在软件系统的实现中,一定会遇到处理数组或者列表的情况,其内部存储的内容都是相同的数据类型,当遇到这种情况时,我们通常的做法是使用如下的for循环语句,对数组或者列表内容进行遍历,从而处理其中的数据内容:for (int i = 0; i array.length; i+) /其他处理动作System.out.println(arrayi);/其他处理动作2、定义迭代器模式迭代器模
5、式(Iterator Pattern),提供了一种模式顺序访问一个集合对象中各个元素的功能,而又不暴露其内部的表示。3、模式分析迭代器模式如何遍历集合对象1传统的遍历方法(1)耦合在集合对象内部,让容器实现遍历功能;(2)让调用集合对象的外部应用自己实现遍历算法。2增加第三方迭代器处理(1)迭代器需要做到能够遍历集合中的数据;(2)迭代器在不需要暴露集合对象内部实现细节的情况 下,能够遍历集合中的数据;(3)迭代器获取集合对象内部数据的方式,也不需要依赖于集合对象下标,即生成迭代器之后,就完全脱离集合对象的约束。4、调用关系迭代器模式迭代器模式由以下角色组成:1迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口。2具体迭代器角色(Concrete Iterator):具体迭代器角色要实现迭代器接口,并要记录遍历中的当前位置。3集合角色(Aggregate):集合角色负责提供创建具体迭代器角色的接口。4具体集合角色(Concrete Aggregate):具体集合角色实现创建具体迭代器角色的接口这个具体迭代器角色于该集合的结构相关。5、UML图迭代器模式迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国基因检测服务下沉市场拓展与消费者认知教育研究报告
- 中国会展量子加密技术发展趋势展望报告
- 中班科学教案葱哥哥蒜弟弟
- 一次上岸2025国控私募基金笔试真题答案备考包
- 2026年标本采集测试题有答案
- 2026年食品卫生简答测试题及答案
- 2026linux驱动面试题及答案
- 2025-2026学年中学古诗教案模板
- 1.我是小学生啦教学设计小学心理健康一年级上册鲁画版
- 2025-2026学年摩托车行驶挂档教学设计
- 人工智能在绩效评价中的应用-全面剖析
- 2025年03月通榆县委统一战线工作部民族宗教事务服务中心公开选调事业编制工作人员笔试历年参考题库考点剖析附解题思路及答案详解
- 2025年上饶幼儿师范高等专科学校单招职业技能测试题库汇编
- T-CNITA 05103-2018 袋式除尘用水刺非织造滤料
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 《光的本质之争》课件
- 《任务型教学法在初中历史教学中的应用研究》
- 学校食堂员工培训
- 中药灌肠疗法课件
- 西门子S7-1500 PLC技术及应用 课件 第5章 S7-1500 PLC 的通信及其应用
- 2024年员工借调合同书
评论
0/150
提交评论