现实生活中的适配器例子
泰国插座用的是两孔的(欧标),可以买个多功能转换插头(适配器) ,这样就可以使用了。
基本介绍
- 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)
- 适配器模式属于结构型模式
- 主要分为三类:类适配器模式、对象适配器模式、接口适配器模式
工作原理
- 适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容
- 从用户的角度看不到被适配者,是解耦的
- 用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法
- 用户收到反馈结果,感觉只是和目标接口交互,如图
类适配器模式
类适配器模式介绍
基本介绍:Adapter 类,通过继承src 类,实现dst 类接口,完成src->dst 的适配。
类适配器模式应用实例
- 应用实例说明
以生活中充电器的例子来讲解适配器,充电器本身相当于Adapter,220V 交流电相当于src (即被适配者),我们的目dst(即目标)是5V 直流电 - 思路分析(类图)
- 代码实现
IVoltage5V.java:适配接口(需要的)
//适配接口
public interface IVoltage5V {
public int output5V();
}
Voltage220V.java:被适配的类(要转换的)
//被适配的类
public class Voltage220V {
//输出220V的电压
public int output220V() {
int src = 220;
System.out.println("电压=" + src + "伏");
return src;
}
}
VoltageAdapter.java:适配器类(转换器)
//适配器类
public class VoltageAdapter extends Voltage220V implements IVoltage5V {
@Override
public int output5V() {
// TODO Auto-generated method stub
//获取到220V电压
int srcV = output220V();
int dstV