//HDMI接口,需要被适配的接口
public interface HDMIPort {
void workByHDMI();
}
//VGI接口,客户端所期待的接口
public interface VGIPort {
void workByVGI();
}
//将HDMI接口转换为VGI,这就是适配器
public class HDMIToVGI implements VGIPort{
HDMIPort hdmiPort;
public HDMIToVGI(HDMIPort hdmiPort) {
this.hdmiPort = hdmiPort;
}
//将HDMI接口转换为VGI接口
@Override
public void workByVGI() {
hdmiPort.workByHDMI();
}
}
public static void main(String[] args) {
//定义一个HDMI接口
HDMIPort hdmiPort = new HDMIPort() {
@Override
public void workByHDMI() {
//hdmi接口工作方式
}
};
//将HDMI接口转换为VGI接口
VGIPort vgiPort = new HDMIToVGI(hdmiPort);
//经过转换HDMI接口变成了VGI接口
vgiPort.workByVGI();
}
package com.qbz.test;
//MicroUSB接口,客户端所期待的接口
interface MicroUSB {
void process();
}
// USBTypec接口,需要被适配的接口
interface USBTypec {
void process();
}
class Phone implements MicroUSB {
@Override
public void process() {
System.out.println("使用MicroUSB接口进行充电");
}
}
class Car implements USBTypec {
@Override
public void process() {
System.out.println("使用USBTypec接口进行充电");
}
}
// 适配器,将USBTypec接口转换成MicroUSB
class USBTypecToMicroUSB implements MicroUSB {
USBTypec usbTypec;
public USBTypecToMicroUSB(USBTypec usbTypec) {
this.usbTypec = usbTypec;
}
@Override
public void process() {
System.out.println("USBTypec接口转换成MicroUSB");
// 将USBTypec接口转换成MicroUSB接口
usbTypec.process();
}
}
public class Main {
public static void main(String[] args) {
USBTypec usbTypec = new Car();
USBTypecToMicroUSB tTom = new USBTypecToMicroUSB(usbTypec);
tTom.process();
}
}
USBTypec接口转换成MicroUSB
使用USBTypec接口进行充电