设计模式之适配器

Posted by Finn on May 26, 2020

定义

将一个类的接口转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以相互合作。

如何使用

适配器模式同样来自于我们生活中,如手机的电源适配器,同样笔记本电脑/Pad等都需要电源适配器,原因就是电子设备需要的电源接口不是220V,是需要使用适配器进行转换的(5V等),那对应成代码是怎么样的呢(适配器模式如何落地呢)?

首先有一个220V电源的接口和实现

public interface V220Power {
    /**
     * 
     * @return 电源电压
     */
    int getPower();
}
public class V220PowerImpl implements V220Power {
    @Override
    public int getPower() {
        return 220;
    }
}

现在需要一个5V的电源接口,可以给iPhone充电

public interface V5Power {
    int getPower();
}

实现一个5V电源适配器,来将220V转换为5V

public class V5PowerAdapter implements V5Power {

    private V220Power v220Power;

    public V5PowerAdapter(V220Power v220Power) {
        this.v220Power = v220Power;
    }

    @Override
    public int getPower() {
        int power = this.v220Power.getPower();
        //经过复杂的处理,将220V转换为5V
        power = 5;
        return power;
    }
}

总结

至此成功地将220V电压的电源适配到了5V电压,给我的iPhone充上了电;适配器就是将已有的接口转换为满足需求的新接口,且同时可以使用已有接口的结果,降低了修改的成本的同时,也增强了扩展性。