适配器模式的核心:让2个不匹配的接口在一起工作!
一、适配器的3个元素
1、源产品,例如本例中的汽车点烟器插口。
2、目标接口,例如本例中的USB接口。
3、适配器,也可以叫转换器,也就是本例中的点烟器。
二、适配器的工作原理
利用点烟器将点烟器插口转换成USB插口,点烟器则是适配器。
三、示例代码
1、源产品
/**
* 作者: Created by AdminFun
* 邮箱: 614484070@qq.com
* 创建: 2019/1/4
* 修改: 2019/1/4
* 版本: v1.0.0
* 描述: 产品-点烟器
*/
public class Cigarette implements ICigarette {
@Override
public Object Cigarette() {
return "这是一个点烟器,点烟器就必须实现点烟器接口";
}
}
2、目标接口
/**
* 作者: Created by AdminFun
* 邮箱: 614484070@qq.com
* 创建: 2019/1/4
* 修改: 2019/1/4
* 版本: v1.0.0
* 描述: 目标接口-USB接口
*/
public interface IUSBInterface {
Object USBInterface();
}
3、适配器
/**
* 作者: Created by AdminFun
* 邮箱: 614484070@qq.com
* 创建: 2019/1/2
* 修改: 2019/1/2
* 版本: v1.0.0
* 模式:适配器模式:将不匹配的2个接口匹配在一起,使之能共同工作。
* <p>
* 分为类适配器和对象适配器
* 对象适配器就是本例子中所讲,类适配器实现的效果一样,结构有差异而已。
* <p>
* 适配器模式的3个元素如下:
* 1、source:源产品
* 2、target:目标接口
* 3、adapter:适配器/转换器
* <p>
* 适配器模式的工作原理如下:
* 产品类实现源产品接口,适配器实现目标产品接口,在适配器中引入源产品,在实现方法中输出目标产品。
*/
public class PowerAdapter implements IUSBInterface {
Cigarette cigarette;
public PowerAdapter(Cigarette cigarette) {
this.cigarette = cigarette;
}
@Override
public Object USBInterface() {
// 使用委托完成特殊功能,输出USB
return null;
}
}
4、使用
public static void main() {
PowerAdapter adapter = new PowerAdapter(new Cigarette());
adapter.USBInterface();
}
网友评论