做个笔记
引用 https://blog.csdn.net/weixin_40834464/article/details/82958187
public interface Usb {
public void getUsb();
}
public interface Psp {
public void getPsp();
}
public class Usber implements Usb {
@Override
public void getUsb() {
System.out.println("usb接口");
}
}
/**
* 类适配器 psp适用usb接口
*/
public class UsbAdapter extends Usber implements Psp{
@Override
public void getPsp() {
// System.out.println("psp接口");
super.getUsb();
}
}
/**
* 对象适配器 psp适用usb接口
*/
public class UsbObjectAdapter implements Psp{
private Usber usb;
public UsbObjectAdapter(Usber usber){
this.usb = usber;
}
@Override
public void getPsp() {
usb.getUsb();
}
}
/**
* 类适配器
*
* 1.usb接口 psp接口 两个接口方法不能互相实用
* 2.usb接口实现类 Usber
* 3.Usber 不能直接实用psp得方法
* 4.适配器类AdapterTest 继承 Usber 实现psp接口
*可以发现,我们调用的是Ps2的接口方法,返回的是Usb口,达到了适配的目的
*
* 类适配器与对象适配器的使用场景一致,仅仅是实现手段稍有区别,二者主要用于如下场景:
* (1)想要使用一个已经存在的类,但是它却不符合现有的接口规范,导致无法直接去访问,这时创建一个适配器就能间接去访问这个类中的方法
* (2)我们有一个类,想将其设计为可重用的类(可被多处访问),我们可以创建适配器来将这个类来适配其他没有提供合适接口的类
*
*
* 对象适配器
* 类实现Psp得接口 (UsbObjectAdapter适配器实现被适配psp得接口)
* 构造方法获取标准得对象
*
*
*目的是要Psp 去 适配 Usb得接口方法 通俗点就是 Psp要执行usb方法 改写psp方法
*/
public class AdapterTest {
public static void main(String[] args) {
// UsbAdapter usbAdapter = new UsbAdapter();
// usbAdapter.getPsp();
//类适配器 测试方法
//可以发现,我们调用的是Psp的接口方法,返回的是Usb口,达到了适配的目的
// Psp psp = new UsbAdapter();
// psp.getPsp();
//对象适配器 测试方法
Usber usber = new Usber();
new UsbObjectAdapter(usber).getPsp();
}
}