适配器模式
——
Adaptor(Adapter)
注意
:
Adapto
r
,也作
Adapte
r
一、定义及架构
Adaptor(
别名
Wrapper)
模式:将一个类的接口,转换成客户期望的另一个类的接口。适配器器让原本接口不兼容的类可以合作无间。
要点:
1.
适配器模式主要应用“希望复用一些类,但是接口又与复用环境要求不一致的情况”,在遗留代码复用、类库迁移等方面非常有用。
2.
适配器模式有“对象适配器”和“类适配器”两种形式的实现结构,但类适配器采用“多继承”的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用“对象组合”的方式,更符合松耦合精神。
ClassAdaptor
类适配器
_
继承方式
ObjectAdaptor
对象适配器
_
组合方式
如何记忆:
Adaptee是系统已有的功能
(如,usb插口);
Target是适配器规范
(如,usb接口转换成micro-sd接口的规范);
ObjectAdaptor/ClassAdaptor是适配器规范的具体实
现(如,A公司生产的usb接口转换成micro-sd接口的卡片,通常价值5块钱)
二、代码实现“
ObjectAdaptor
对象适配器”
public class Main {
public static void main(String[] args){
Target target=new ObjectAdaptor(new Adaptee());
target.request();
}
}
public interface Target {
public void request();
}
public class Adaptee {
public void specificRequest(){
System.out.println("系统已经实现的功能");
}
}
public class ObjectAdaptor implements Target{
private Adaptee adaptee=null;
public ObjectAdaptor(Adaptee adaptee){
this.adaptee=adaptee;
}
/**
* 适配方法:这个方法必须与Target中的相关方法声明完全一样
*/
public void request(){
adaptee.specificRequest();
}
}
三、总结:
1.
模式的功能
适配器模式的主要功能在于进行匹配转换,复用已有功能,而非实现新的接口。也就是说,客户端需要的功能已经实现好了,不需要适配器模式来实现,适配器模式主要负责把不兼容的接口转换成客户端期望的样子即可。
但这并不是说,在适配器里面不能实现功能。适配器里面可以实现功能,我们成这种适配器为“智能适配器
”。而且,在接口适配和转换的过程中,也有可能需要额外实现一定的功能,才能转换过来,比如需要调整参数进行匹配等。
2. Adaptee
和
Target
的关系
适配器模式中“被适配的类
Adaptee
”和“客户调用的接口
Target
”是没有关联的,也就是说,
Adaptee
和
Target
中的方法既可以相同,也可以不同。极端情况下两个接口的方法可以完全不同。
3.
适配器模式调用的顺序
①调用客户端需要的功能
②这个功能会由适配器实现
③适配器会转调“被适配对象”的功能。
参考文档:
http://www.cnblogs.com/god_bless_you/archive/2010/06/11/1756019.html
适配器模式
http://blog.csdn.net/xw13106209/article/details/7001746
适配器模式
- 大小: 21.1 KB
- 大小: 26.1 KB
分享到:
相关推荐
Java适配器的几个小例子,对初学者有帮助
适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite) 装饰器模式(decorate) 外观模式(facecade) 享元模式(flyweight) 代理模式(proxy) 行为型模式(behaviour) 责任链模式(chainrespon) 命令模式(commond) ...
DBus通讯方式中,设置适配器Adaptor和Interface的通讯方式比较麻烦,重点在于适配器类(Adaptor类)和接口类(Interface类)的生成,Qt有工具可以自动生成相应的类。※建议Qt中DBus通讯使用Interface-Connection方式...
DBus通讯方式中,设置适配器Adaptor和Interface的通讯方式比较麻烦,重点在于适配器类(Adaptor类)和接口类(Interface类)的生成,Qt有工具可以自动生成相应的类。※建议Qt中DBus通讯使用Interface-Connection方式...
1.概念:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 2.为何使用:我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,...
iOS设计模式之适配器模式,简单的demo 去分析对应的设计
允许 crudbrella 与猫鼬一起工作##Installation 安装 nodeJS、您选择的数据库和 crudbrella 后,通过 npm 安装此适配器 npm install adaptor-crudbrella-mongoose##Options ###Populate 要使用存储在另一个集合中的...
适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite) 装饰器模式(decorate) 外观模式(facecade) 享元模式(flyweight) 代理模式(proxy) 行为型模式(behaviour) 责任链模式(chainrespon) 命令模式(commond) ...
USB 2.0 10/100M Ethernet Adapter驱动 那种usb转RJ45接口的设备
实验结果-病理学和筛选适配器适配器范围Lab Results Adapter的主要目标是隐藏复杂的旧标准,取而代之的是提供一个与当前NHSD国家标准保持一致的简单且一致的界面。 该适配器消除了GP系统处理EDIFACT和MESH消息传递的...
USB2.0 Ethernet Adapter是USB2.0接口的以太网适配器即网卡。 把USB有线网卡插入一个可用的USB接口此时,Windows会提示发现新硬件,并自动搜索安装驱动,有一些USB网卡可以直接自动安装好驱动。此时,在Windows的...
usb 2.0 10 100m ethernet adaptor USB网口转换器驱动
此扩展用于为您的商店构建一个适配器以与Fanplayr集成。 此扩展名应与Fanplayr(fanplayr.com)帐户一起使用,以创建适配器来跟踪电子商务网站上的用户。 有关如何使用此扩展程序的文档,请参见:...
Polemstra等人介绍的Implemnts Adapter Signatures [1]。 ECDSA Adapter Signatures [2]由Aumayr等人正式提出。 机具 ECDSA适配器签名[] 预签名[x] 预先验证[x] 用于预签名的NIZK证明[x] 证人提取[] 签名适应[]...
它由两个主要模块组成,即虚拟基础架构管理器适配器(VIM Adaptor)和WAN基础架构管理器适配器(WAN Adaptor)。 VIM适配器负责公开与一个或多个VIM交互的接口,以Sonata MANO框架的一个或多个存在点管理计算,网络...
官网已经下载不到了。这个亲测可用。适用于hp usb network print adapter
USB 2.0 10/100M Ethernet Adaptor操作简单, 1.插上USB 2.0 10/100M Ethernet Adaptor设备 2.解压驱动包点击安装 3.刷新或重启电脑。 恭喜你,可以上网了。。。。
USB 2.0 10/100M Ethernet Adaptor有线网卡驱动 很好用
USB 2.0 10/100M Ethernet Adaptor有线网卡驱动 天蓝透明色和带线的USB网卡都适用卡 支持WIN7 32位 外接网卡 外置 USB网卡驱动 平板电脑网卡驱动 以太网驱动 本人测试可用
adapter-test