适配器模式的定义
在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。
共有两类适配器模式:
对象适配器模式
-
在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种情况下,适 配器调用被包裹对象的物理实体。
类适配器模式
-
-- 这种适配器模式下,适配器继承自已实现的类。
模型:
-
Target:目标角色,定义把其他类转换为我们期望的角色
-
Adaptee:初始角色,即我们原始的类和接口对象,如“A->B”,其中 A就是初始角色,它是一直存在的
-
Adapter:适配器角色,也就是我们今天的重点,适配器需要新创建,通过继承等方式把初始角色转换成为目标角色。
代码演示(类适配器模式):
1.AbstractTarget:抽象目标角色
public interface AbstractTarget {
//抽象目标角色方法
public void target();
}
2.具体的目标角色
public class Target implements AbstractTarget {
@Override
public void target() {
Log.d("qzs","实现目标方法");
}
}
3.初始角色Adaptee:
public class Adaptee {
//初始的方法
public void adaptee(){
Log.d("qzs","初始的逻辑");
}
}
4.适配器角色:
public class Adapter extends Adaptee implements AbstractTarget {
@Override
public void target() {
adaptee();
}
}
5.调用
AbstractTarget tr=new Adapter();
tr.target();
实例说明
例如,我手中有Android数据线和iphone手机,我想用安卓数据线给iphone手机充电。此时:
-
初始角色:Android数据线
-
目标角色:iphone手机
-
适配器:数据线转换器
代码演示:
1.Android数据线:
public class AndroidLine {
public void charge(){
Log.d("qzs","Android数据线给Android手机充电");
}
}
2.目标角色:
public interface AbstractIphone {
public void target();
}
3.数据线转换器
public class PhoneLineAdapter extends AndroidLine implements AbstractIphone {
@Override
public void target() {
super.charge();
Log.d("qzs","但是我可以通过数据线转换器来给iphone手机充电");
}
}
4.调用
AbstractIphone tr1=new PhoneLineAdapter();
tr1.target();
运行:
适配器模式的优点及其他
1.优点
-
灵活性好
-
通过适配器可以让两个没有关系的类一起运行
-
增加了类的通透性
2.注意:
当初始角色的接口和实现类为多个时,我们在写适配器不能用继承的方式。可以通过在适配器中构造函数的方法来传递对象从而实现数据处理,也就是对象适配器模式。
文章参考了网上信息以及《设计模式之禅》
相关推荐
23种设计模式--适配器模式
设计模式--适配器模式java例子
JAVA设计模式--适配器模式借鉴.pdf
JAVA设计模式--适配器模式[参照].pdf
设计模式之适配器模式,简单易懂,可便于查阅
JAVA-设计模式-结构型模式-适配器模式
设计模式-适配器模式
java常用设计模式-适配器模式
设计模式-适配器模式(讲解及其实现代码)
本案例根据面向对象的接口实现的基础知识,根据java中常见的适配器设计模式,写了一些demo
c++设计模式-结构型模式-适配器模式,其他工程,c++源码。适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
每次都要写这么坑爹的20个字,都是看博客来下的,哪需要那么多的介绍,殊不知明天期末英语。
Java 设计模式3-结构型-适配器、组合、代理、外观
适配器模式 设计模式 Adapter 还请各位大S指教
适配器模式的PHP实现。大家可以参考一下。
适配器模式(Adapter Pattern) 是作为两个不兼容接口之间的桥梁, 这种类型的设计模式属于结构型模式。 一些书籍也称适配器模式为缺省适配器模式(Default Adapter Pattern) 。 适配器模式主要分 为三类: 类...
设计模式实验报告
设计模式代码,简单的写了类适配器,对象适配器
Android程序源码--适配器,Android程序源码--适配器
设计模式06-适配器、桥接、组合模式 设计模式07-组合模式、装饰模式 设计模式09-外观模式、享元模式 设计模式10-代理模式、结构型模式大复习 设计模式11-行为模式-责任链、命令模式 设计模式12-解释器模式 设计模式...