经过适配器模式设计后,可以使原本接口不匹配而无法一起工作的两个类能够在一起工作。就像我们平时充电时:假设当前我们手头只有Type-C,而我们要充电的设备充电端口是Micro-USB,此时我们就需要一个转接头,这个转接头就是本文描述的适配器。
假设你刚买了一台设备,但是用的是Micro-USB的接口,然而你目前只有Type-C的数据线。在你万般无奈的时候,你突然想起家里有一个Type-C转Micro-USB的转接头……
TypeC类:即Type-C数据线
MicroUSB接口:即Micro-USB数据线
Adapter类:即转接头
Test类:测试转接头是否能用
//Type-C数据线
class TypeC{
String desc = "Now we can charge with Type-C";
public void chargeByTypeC() {
System.out.println(desc);
}
}
//Micro-USB数据线
interface MicroUSB{
public void chargeByMicroUSB();
}
//数据线转接头
class Adapter extends TypeC implements MicroUSB{
public void chargeByMicroUSB() {
super.chargeByTypeC();
}
}
//测试
public class Test {
public static void main(String[] args) {
//拿到一个数据线转接头
Adapter adapter = new Adapter();
//用这个转接头去把Type-C适配成Mirco-USB接口,如此这般我们的设备就可以充电了
adapter.chargeByMicroUSB();
}
}
//Type-C数据线
class TypeC{
String desc = "Now we can charge with Type-C";
public void chargeByTypeC() {
System.out.println(desc);
}
}
//Micro-USB数据线
interface MicroUSB{
public void chargeByMicroUSB();
}
//数据线转接头
class Adapter implements MicroUSB{
private TypeC typec;
public Adapter(TypeC typec) {
this.typec = typec;
}
public void chargeByMicroUSB() {
this.typec.chargeByTypeC();
}
}
//测试
public class Test {
public static void main(String[] args) {
//现在有一根Type-C数据线
TypeC typec = new TypeC();
//拿到一个数据线转接头
Adapter adapter = new Adapter(typec);
//用这个转接头去把Type-C适配成Mirco-USB接口,如此这般我们的设备就可以用Mirco-USB充电了
adapter.chargeByMicroUSB();
}
}
与类适配器所不同的时,这个的适配器类只需要实现Type-C接口,还在适配器的实现中做了些许改变。
原文:https://www.cnblogs.com/xunxian/p/13619471.html