设计模式 互动版

适配器模式例子

把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();
}