适配器模式的工作原理:
将一个类的接口转换为另一种接口,让原本接口不兼容的类可以兼容。
从用户的角度是看不到适配器的,是解耦的;用户调用的是适配器转化后的目标接口方法,适配器再调用被适配者的相关接口方法。(比如用户只用type-C,要的是这个口给出的5v电压,而适配器去插插孔),这样对于用户来说,只是目标和接口交互。
一、类适配器模式
类适配器会有一个 Adapter 类,通过继承 src(被适配者) 类,实现 dst(目标) 接口,完成从 src -> dst 的适配。
这几个之间的关系:
比如充电器是 Adapter , 220V 交流电是 src ,5V直流电是 dst。也就是说,目标是要插 dst ,但是只有 src 是源,src 需要被适配,src 是被适配者,适配器是 Adapter。
如上类图所示:
- Phone 和接口 Dest 关联,为了的得到 5V 电压,和接口关联更加适合扩展,Dest就是我们的 dst;
- Src220V就是我们的src,提供220V的交流电,需要被适配;
- Adapter就是我们说的Adapter,完成把 src 转换为 dst 的功能,他实现了 dst 接口,继承了 src 类。
/*
被适配者
*/
public class Src220V {
public int output220V(){
int src = 220;
System.out.println("电压 = " + src + "V");
return src;
}
}
/*
目标dst,5V电压,是接口
*/
public interface Dest5V {
public int output5V