前提:适配器模式有三种-类、对象、接口适配器。(暂时没想到更啥,先更着以前写的适配器模式吧。。。)
使用场景:假设手上有一个ps2插头的设备,但主机对外是usb,这时候需要弄个转换器,将ps2转为usb插头。
Java中使用场景:java中的I/O流将字节流转为字符流,如InputStreamReader isr = new InputStreamReader(InputStream in);
1 类适配器:
用到的类:接口Ps2、Usb + 实现类Usber + 适配器Adapter。
实现方法:适配器会继承Ps2接口,继承Usber实现类,并重写Ps2接口方法,然后里面调用实现类Usber方法。
public class Adapter extends Usber implements Ps2 {
@Override
public void isPs2() {
isUsb();
}
}
总结:适配器 继承被适配类的实现类,继承适配类的接口并重写。
2 对象适配器:
用到的类:同上
组合方式
public class Adapter implements Ps2 {
private Usb usb;
public Adapter(Usb usb){
this.usb = usb;
}
@Override
public void isPs2() {
usb.isUsb();
}
}
3 接口适配器:
用到的类:含多种方法的接口A + 抽象类适配器Adapter + 具体实现类B
实现方法:由于直接实现接口A,具体实现类需要实现其所有方法,而通过Adapter抽象类继承接口A,然后具体实现类B在继承抽象类Adapter,就仅需实现部分,而无需实现接口所有(关键是中间层加了抽象类)
4 适配器应用场景:
类和对象适配器用于改变已存在具体类的接口规范,而接口适配器模式则用于隐藏接口中不需要实现的部分方法。
标签:usb,实现,Adapter,接口,public,模式,设计模式,适配器 From: https://blog.51cto.com/u_13854513/6127524