将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。
适配器模式有类的适配器模式和对象的适配器模式两种不同的形式。
一、类的适配器模式
类的适配器模式把适配的类的API转换成目标类的API。
- 目标(Target)角色:这就是所期待得到的接口。
- 源(Adaptee)角色:现有需要适配的接口。
- 适配器(Adapter)角色:适配器类是本模式的核心。适配器把源接口转换成目标接口。显然这一角色不可以是接口,而必须是具体类。
/**
* 定义Client使用的与特定领域相关的接口
*/
public interface Target {
void sampleOperation1();
void sampleOperation2();
}
/**
* 定义一个已经存在的接口,这个接口需要适配
*/
public class Adaptee {
public void sampleOperation1() {
// ......
}
}
/**
* 对Adaptee与Target接口进行适配
*/
public class Adapter extends Adaptee implements Target {
public void sampleOperation2() {
// ......
}
}
二、对象适配器
与类的适配器模式一样,对象适配器模式把适配的类的API转换成为目标类的API,与类的适配器模式不同的是,对象的适配器模式不是使用继承关系连接到Adaptee类,而是使用委派关系连接到Adaptee类。示意代码如下:
/**
* 定义Client使用的与特定领域相关的接口
*/
public interface Target {
void sampleOperation1();
void sampleOperation2();
}
/**
* 定义一个已经存在的接口,这个接口需要适配
*/
public class Adaptee {
public void sampleOperation1() {
// ......
}
}
/**
* 对Adaptee与Target接口进行适配
*/
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
super();
this.adaptee = adaptee;
}
public void sampleOperation1() {
adaptee.sampleOperation1();
}
public void sampleOperation2() {
// ......
}
}
类适配器模式和对象适配器模式的异同:Target接口和Adaptee类都相同,不同的是类适配器的Adapter继承Adaptee实现Target,对象适配器的Adapter实现Target聚集Adaptee。
适配器模式的用意是将接口不同而功能相同或者相近的两个接口加以转换。
- 大小: 16.1 KB
分享到:
相关推荐
java 汽车适配器(Adapter适配器模式) java 汽车适配器(Adapter适配器模式)
C#面向对象设计模式 Adapter 适配器模式 视频讲座下载
C#面向对象设计模式纵横谈(7):Adapter 适配器模式(结构型模式) 体验课程
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第7节:结构型模式Adapter 适配器模式
C#面向对象设计模式纵横谈(7):Adapter 适配器模式(结构型模式) (Level 300)
Adapter适配器模式在JavaScript设计模式编程中的运用分析_.docx
主要为大家详细介绍了Java设计模式之Adapter适配器模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了Python设计模式编程中Adapter适配器模式的使用实例,一般来说适配器模式可以细分为类适配器和对象适配器模式,需要的朋友可以参考下
适配器模式的作用是解决两个软件实体间的接口不兼容的问题,在JavaScript尤其是AJAX方面比较常用,接下来看一下对Adapter适配器模式在JavaScript设计模式编程中的运用分析
走进设计模式之——适配器模式 (Adapter) 对应代码
主要介绍了Java 适配器模式(类适配器,对象适配器)优缺点对比的相关资料,java 适配器在基础知识中还是比较重要的,这里就说下如何使用,需要的朋友可以参考下
设计模式C++学习之适配器模式(Adapter)
一些书籍也称适配器模式为缺省适配器模式(Default Adapter Pattern) 。 适配器模式主要分 为三类: 类适配器模式、 对象适配器模式、 接口适配器模式。 以生活中手机充电为例来讲解适配器模式, 手机本身并不能...
C#设计模式之适配器模式应用实例
基于类的Adapter模式的一般结构如下:Adaptee类为Adapter的父类,Adaptee类为适配源,适配目标(接口)也是Adapter的父类;基于类的Adapter模式比较适合应用于Adapter想修改Adaptee的部分方法的情况。 基于对象的...
java设计模式之适配器模式,希望对大家有所帮助。
适配器模式 设计模式 Adapter 还请各位大S指教