08 第8章 适配器模式(Java)
UML基础知识(Java
第8章 适配器模式
UML基础知识(Java
本章教学内容结构型模式结构型模式概述 结构型模式简介
适配器模式模式动机与定义 模式结构与分析 模式实例与解析 模式效果与应用 模式扩展
Page 2
UML基础知识(Java
结构型模式结构型模式概述结构型模式(Structural Pattern)描述如何将类或者对象结 描述如何将类或者对象结 结构型模式 描述 合在一起形成更大的结构,就像搭积木, 合在一起形成更大的结构,就像搭积木,可以通过简单积 木的组合形成复杂的、功能更为强大的结构。 木的组合形成复杂的、功能更为强大的结构。
Page 3
UML基础知识(Java
结构型模式结构型模式概述根据这一点,结构型模式可以分为类结构型模式和 根据这一点,结构型模式可以分为类结构型模式和对 类结构型模式 象结构型模式: 象结构型模式:类结构型模式关心类的组合,由多个类可以组合成一个 更大的系统,在类结构型模式中一般只存在继承关系和 实现关系。 对象结构型模式关心类与对象的组合,通过关联关系使 得在一个类中定义另一个类的实例对象,然后通过该对 象调用其方法。根据“合成复用原则”,在系统中尽量 使用关联关系来替代继承关系,因此大部分结构型模式 都是对象结构型模式。Page 4
UML基础知识(Java
结构型模式结构型模式简介适配器模式(Adapter) 适配器模式 桥接模式(Bridge) 桥接模式 组合模式(Composite) 组合模式 装饰模式(Decorator) 装饰模式 外观模式(Facade) 外观模式 享元模式(Flyweight) 享元模式 代理模式(Proxy) 代理模式
Page 5
UML基础知识(Java
适配器模式模式动机
Page 6
UML基础知识(Java
适配器模式模式动机在软件开发中采用类似于电源适配器的设计和编码技巧被 称为适配器模式 适配器模式。 称为适配器模式。 通常情况下,客户端可以通过目标类的接口访问它所提供 通常情况下, 的服务。有时,现有的类可以满足客户类的功能需要, 的服务。有时,现有的类可以满足客户类的功能需要,但 是它所提供的接口不一定是客户类所期望的, 是它所提供的接口不一定是客户类所期望的,这可能是因 为现有类中方法名与目标类中定义的方法名不一致等原因 所导致的。 所导致的。 在这种情况下,现有的接口需要转化为客户类期望的接口, 在这种情况下,现有的接口需要转化为客户类期望的接口, 这样保证了对现有类的重用。如果不进行这样的转化, 这样保证了对现有类的重用。如果不进行这样的转化,客 户类就不能利用现有类所提供的功能, 户类就不能利用现有类所提供的功能,适配器模式可以完 成这样的转化。 成这样的转化。
Page 7
UML基础知识(Java
适配器模式模式动机在适配器模式中可以定义一个包装类, 在适配器模式中可以定义一
个包装类,包装不兼容接口的 对象,这个包装类指的就是适配器(Adapter),它所包装的 对象,这个包装类指的就是适配器 适配器 , 对象就是适配者 对象就是适配者(Adaptee),即被适配的类。 适配者 ,即被适配的类。 适配器提供客户类需要的接口, 适配器提供客户类需要的接口,适配器的实现就是把客户 类的请求转化为对适配者的相应接口的调用。也就是说: 类的请求转化为对适配者的相应接口的调用。也就是说: 当客户类调用适配器的方法时,在适配器类的内部将调用 当客户类调用适配器的方法时, 适配者类的方法,而这个过程对客户类是透明的, 适配者类的方法,而这个过程对客户类是透明的,客户类 并不直接访问适配者类。 并不直接访问适配者类。 适配器可以使由于接口不兼容而不能交互的类可以一起工 作。这就是适配器模式的模式动机。 这就是适配器模式的模式动机。Page 8
UML基础知识(Java
适配器模式模式定义适配器模式(Adapter Pattern) :将一个接口转换成客 适配器模式 户希望的另一个接口,适配器模式使接口不兼容的那 户希望的另一个接口,适配器模式使接口不兼容的那 些类可以一起工作,其别名为包装器(Wrapper)。适配 些类可以一起工作,其别名为包装器 包装器 。 器模式既可以作为类结构型模式,也可以作为对象结 器模式既可以作为类结构型模式, 构型模式。 构型模式。
Page 9
UML基础知识(Java
适配器模式模式结构类适配器Client Target + request () ... Adaptee + specificRequest () ...
Adapter + request () ...
specificRequest();Page 10
UML基础知识(Java
适配器模式模式结构对象适配器Client Target + request () ... Adaptee + specificRequest () ...
Adapter + request () ...
adaptee
adaptee.specificRequest();Page 11
UML基础知识(Java
适配器模式模式结构适配器模式包含如下角色: 适配器模式包含如下角色:Target:目标抽象类 Adapter:适配器类 Adaptee:适配者类 Client:客户类
Page 12
UML基础知识(Java
适配器模式模式分析典型的类适配器代码: 典型的类适配器代码: 类适配器代码public class Adapter extends Adaptee implements Target { public void request() { specificRequest(); } }
Page 13
UML基础知识(Java
适配器模式模式分析典型的对象适配器代码: 典型的对象适配器代码: 对象适配器代码public class Adapter extends Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee=adaptee; } public void request() { adaptee.specificRequest(); } }Page 14
UML基础知识(Java
适配器模式适配器模式实例与解析实例一: 实例一:仿生机器人现需要设计一个可以模拟各种动物行为的机器人,在机 器人中定义了一系列方法,如机器人叫喊方法cry()、机 器人移动方法move()等。如果希望在不修改已有代码的 基础上使得机器
人能够像狗一样叫,像狗一样跑,使用 适配器模式进行系统设计。
Page 15
UML基础知识(Java
适配器模式适配器模式实例与解析实例一: 实例一:仿生机器人Robot + cry () : void + move () : void ... Dog + wang () : void + run () : void ...
DogAdapter + cry () : void + move () : void ...
Page 16
…… 此处隐藏:1442字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [行业资料]创设有效语境 改善英语教学
- [行业资料]微商推广引流的44种方法
- [行业资料]医疗机构输血科血库基本标准
- [行业资料]锂离子电池项目可行性研究报告(2015年
- [行业资料]申请执行人长沙市开福区人口和计划生育
- [行业资料]倾听草木的呼吸(初中阅读)
- [行业资料]长沙新环境厂房租赁合同书
- [行业资料]2022年经济师《金融专业知识与实务(中
- [行业资料]浦东新区2009学年度第二学期期末考试七
- [行业资料]企业劳动用工协议书
- [行业资料]最新苏科版七年级数学上册第二章有理数
- [行业资料]12星座与英语词汇学习
- [行业资料]2008年高考化学科经验
- [行业资料]镇政府2015年工作总结及2016年政府工作
- [行业资料]梧州市产业园区规划及招商引资报告
- [行业资料]大体积砼承台施工作业指导书
- [行业资料]学生干部在创建和谐校园中的作1
- [行业资料]小学语文教师实习个人总结
- [行业资料]2014完美最新奖金制度
- [行业资料]2016年一建建筑实务-重要知识点地质
- 【最新】人教版小学语文三年级上册:第
- 中国中小企业年鉴(地区数据)
- 动物与人类生活的关系 ppt
- 选修3 专题3 胚胎工程知识点
- 遥感技术基础复习题
- 公司员工职业生涯规划实施方案
- 辽宁省建筑施工企业安全生产许可证管理
- 15秋福师《中外幼儿教育史》在线作业二
- 2015-2020年中国网络视频行业深度调研
- 数学八年级下华东师大版21.1算术平均数
- 苏教版一年级语文下册《小松树和大松树
- 油画论文:摄影对当下油画艺术的影响
- 西方自由主义影响下的新闻自由——从17
- 基于支持向量机的商业银行信用风险评估
- 机械设计基础复习题答案(修改)(1)
- 语文:高考作文素材:材料引用及论点论
- 月份工程进度款结算单62+56
- 2018-2023年中国互联网基金行业现状研
- 人教版 PEP 五年级下册Unit1Lesson1 th
- 2014学年第二学期四年级数学期末教学质




