1、简单介绍
适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原来接口不兼容的类可以合作无间。适配器模式有两种:“对象”适配器和“类”适配器。
2、适配器模式组成结构
- 客户 (Client):客户类。
- 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
- 适配者(Adaptee):需要适配的类或适配者类。
- 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。
3、“类”适配器案例(usb和typec的案例)
1)Usb接口类
public interface Usb {
void isUsb();
}
2)实现Usb接口
public class UsbImpl implements Usb {
@Override
public void isUsb() {
System.out.println("使用usb");
}
}
3)typec接口类
public interface Typec {
void isTypec();
}
4)typec要使用usb的适配器
public class Adapter extends UsbImpl implements Typec {
@Override
public void isTypec() {
isUsb();
}
}
5)测试
public static void main(String[] args) {
Typec typec = new Adapter();
typec.isTypec();//输出使用usb"
}
4、“对象”适配器
1)其他的都不变,我们更改适配器方式
public class Adapter implements Typec {
private Usb usb;
public Adapter(Usb usb) {
this.usb = usb;
}
@Override
public void isTypec() {
usb.isUsb();
}
}
2)测试
public static void main(String[] args) {
Typec p = new Adapter(new UsbImpl());
p.isTypec();// 结果:USB口
}
5、适配器模式总结
- 适配器将一个对象包装起来用以改变其接口。
- 当需要使用一个现有的类而其接口并不符合你的需求时,可以使用适配器。
- 实现一个适配器可能会花一番功夫,可能也会毫不费力,原因是有其目标接口的大小与复杂度决定。
- 适配器模式有两种形式:“类”适配器与“对象适配器”,类适配器需要使用到多重继承,所以在 Java 中并不适用
评论区