适配器模式例子
把HDMI接口转换成VGI接口,使得macbook pro可以外接显示器。
//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();
}