适配器模式—对象适配器模式

解释:

  将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

解决问题:

  需要的东西有,但不能用,且短时间无法改造。即,使得一个功能适合不同的环境。

  在开发中,系统的数据、行为都匹配,但接口不符时,可以考虑适配器。

  希望复用一些现存的类,但是接口又与复用环境的要求不一致,应该考虑用适配器模式。(使用一个已经存在的类,但它的接口(即,方法),与需要的不相同时)

目的:

  使控制范围外的一个原有对象与某接口匹配。

  不改变功能、环境的前提下,使用适配器解决他们之间的代沟。

分类:

  类适配器模式:通过多重继承对一个接口与另一个接口进行匹配。但很多语言不支持,(一个类只可以继承一个父类),所以使用环境有限,效果也有限。

  对象适配器模式;

结构图:

  

  Target,可以是具体、抽象的类、接口

  

  

  

  

优点:

  两个类所做的事情相同、相似。但是具有不同的接口时要使用,且类共享同一接口。这样客户就可以统一调用统一接口就心里。更简单、直接、紧凑。

使用环境:

  在软件开发后期、维护期考虑使用。

  在双方都不太容易修改的时候再使用适配器模式适配。而不是已有不同时就使用它。

  设计系统时,考虑使用第三方开发组件。组件的接口与我们自己的接口是不相同的。

  .NET中的类库DataAdapter是一个已经实现的、非常重要的适配器。DataAdapter用作DataSet和数据源之间的适配器,以便检索和保存数据。DataAdapter通过映射Fill(更改了DataSet中的数据以便与数据源中的数据相匹配)、Update(更改了数据源中的数据以便与DataSet中的数据相匹配)来提供这一适配器。例如,数据源来源不同(SQL Server、Oracle……),其数据组织不同,但可以通过DataAdapter得到统一的DataSet数据。不必关注数据库的数据细节,就可以灵活使用数据。

 示例:

  

使用注意:

  适配器模式是好模式,单不能无视应用场合而盲目使用,导致本末倒置。

  如果能事前预防接口不同的问题,不匹配就不会发生;有效接口不统一问题发生时,及时重构,问题不至于扩大;只有碰到无法改变原有设计、代码的情况时,才考虑适配。

  事后控制不如事中控制,事中控制不如事前控制。

扩展:

  软件开发初期。公司内部,类、方法的命名应该贵方,最好前期就设计好。如果出现类似的功能类不同程序员定义方法的名称不同时。应该考虑通过重构统一接口,而不应该使用适配器。

时间: 2024-10-14 10:29:09

适配器模式—对象适配器模式的相关文章

适配器模式 类适配器模式

适配器模式,Adapter模式,也叫Wrapper模式(包装器) Adapter这个词见的很多,比如springmvc里的SimpleControllerHandlerAdapter,slf4j里的AbstractLoggerAdapter 顾名思义:适配器是为目标寻找合适的类的方法或者对找到的方法进行改造(重写)从而完成方法的调用 适配器模式具体又分为两种:类适配器模式和对象适配器模式 本篇讲的是类适配器模式,对象适配器模式下次再说 类适配器模式对应继承关系 涉及到这几个角色: Target:

跟我学设计模式视频教程——适配器模式,适配器模式VS装饰模式

课程视频 适配器模式 适配器模式VS装饰模式 唠嗑 课程笔记 课程笔记 课程代码 课程代码 新课程火热报名中 课程介绍

Java与设计模式-适配器模式

适配器模式是开发中经常会用到的模式,Android开发中经常用到的各种adapter就属于适配器模式,连接各种数据库时也要用到适配器模式.适配器模式在生活中的实例也随处可见,你托人在日本买了个电饭煲,日本的市电电压是110v,而国内的市电电压是220v,这时你若想安全的使用电饭煲就必须装一个220-110的变压器,这个变压器就可以理解成本模式中的适配器. 适配器模式有类的适配器模式和对象的适配器模式两种不同的形式.首先看一下类的适配器模式UML类图: 类的适配器模式 可以看到,目标接口中有方法1

设计模式之:适配器模式

适配器很容易理解, 大多数人家庭都有手机转接器, 用来为移动电话充电,这就是一种适配器. 如果只有USB接头, 就无法将移动电话插到标准插座上. 实际上, 必须使用一个适配器, 一端接USB插头, 一端接插座. 当然, 你可以拿出电气工具,改装USB连接头, 或者重新安装插座, 不过这样会带来很多额外的工作, 而且可能会把连接头或插座弄坏. 所以, 最可取的方法就是找一个适配器. 软件开发也是如此. 类适配器模式(使用继承) 类适配器模式很简单, 不过与对象适配器模式相比, 类适配器模式的灵活性

结构型模式—适配器模式

定义: 将一个类(Adaptee)的接口转换成客户(Client)希望的另外一个接口(Target). 目标接口(Target):客户所期待的接口.目标可以是具体的或抽象的类,也可以是接口. 需要适配的类(Adaptee):需要适配的类或适配者类. 适配器(Adapter):使得一个东西适合另一个东西的东西.百度中定义为:接口转换器.通过包装一个需要适配的对象,把源接口转换成目标接口. 为什么要适配:需要的东西已做好,但是不能用,短时间又不能改造,想办法适配它. 作用: 使得原本由于接口不兼容而

(八)适配器模式

1. 定义 适配器模式(Adapter),将一个类的接口转换成客户希望的另一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.[DP] 适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况. 适配器模式主要分为两种: 类适配器模式 对象适配器模式 2. 何时使用适配器模式 使用一个已经存在的类,但如果它的接口和需要的不相同时,就应该考虑用适配器模式. 首先不应该考虑用适配器,而是应该考虑通过重构统一接口,只有双方都不太容易修改的时候再使

适配器模式(Adapter):类适配器、对象适配器

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口.A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适用场景: 1.已经存在的类的接口不符合我们的需求: 2.创建一个可以复用的类,使得该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作: 3.在不对每一个都进行子类化以匹配它们的接口的情况下,使用一些已经存在的子类. 通用类图: 我们生活中常常听到的是 电源适配器,它是用于电流变换(整流)的设备.适配器的

iOS开发-适配器和外观模式

适配器模式,属于结构型模式,其主要作用是将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.适配器模式有对象适配器和类适配器两种,类适配器模式需要语言实现多继承,OC不支持多继承,所以一般我们都实现对象适配器.外观模式提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用.适配器是为了转换接口,外观模式是为了简化接口. 适配器模式 对象适配器模式UML类图: 关于适配模式最常见的就是手机充电的例子,

Cocos2dx 小技巧(十二) 一种可行的系列动画播放方式

定义: 将一个类(Adaptee)的接口转换成客户(Client)希望的另外一个接口(Target). 目标接口(Target):客户所期待的接口.目标可以是具体的或抽象的类,也可以是接口. 需要适配的类(Adaptee):需要适配的类或适配者类. 适配器(Adapter):使得一个东西适合另一个东西的东西.百度中定义为:接口转换器.通过包装一个需要适配的对象,把源接口转换成目标接口. 为什么要适配:需要的东西已做好,但是不能用,短时间又不能改造,想办法适配它. 作用: 使得原本由于接口不兼容而