设计模式——适配器模式

2021/9/30 23:10:54

本文主要是介绍设计模式——适配器模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

适配器模式本质是为了解决 对接另外一个接口时,发现两边的数据格式或者一些原因导致不能直接对接;这是很正常的现象;当为了实现低耦合即尽量不要修改大量代码去适配对接接口,就应该抽象出一层适配层,即适配类来完成两边的对接工作。

适配器模式分为两种

  1. 类适配方式,即通过继承来完成
  2. 对象适配方式,即通过代理来完成

都通过 220V电源 向 5V电源 适配的案例来举例

第一种方式--类适配:

220V 电源类
// 220V 电源类
public class Volate220V {
    //输出220v的电压
    public int output220V(){
        int src = 220;
        System.out.println("电压="+src + "伏");
        return src;
    }
}
定义一个输出5V的接口
//适配接口
public interface IVoltage5V {
    public int output5V();
}
适配类
//适配器类
public class VoltageAdapter  extends Volate220V implements IVoltage5V {
    @Override
    public int output5V() {
        //获得到220v电压
        int srcV = output220V();
        int dstV = srcV / 44;//转换成5V
        return dstV;
    }
}
使用
public class Client {
    public static void main(String[] args){
        VoltageAdapter voltageAdapter = new VoltageAdapter();
        voltageAdapter.output5V();
    }
}

第二种方式:对象适配

定义一个适配接口,适配5V电源
//适配接口
public interface IVoltage5V {
    public int output5V();
}
220V电源类
//被适配的类
public class Volate220V {
    //输出220v的电压
    public int output220V(){
        int src = 220;
        System.out.println("电压="+src + "伏");
        return src;
    }
}
适配器类
//适配器类
public class VoltageAdapter implements IVoltage5V {
    
    private Volate220V volate220V;//关联关系-聚合

    //通过构造器,传入一个Volate220V实例
    public VoltageAdapter(Volate220V volate220V) {
        this.volate220V = volate220V;
    }

    @Override
    public int output5V() {
        //获得到220v电压
        int dst = 0;
        if (volate220V != null){
            int srcV =  volate220V.output220V();//获取220v电压
            System.out.println("使用对象适配器,进行适配~");
            dst = srcV / 44;//转换成5V
            System.out.println("适配完成,输出的电压为="+dst);
        }

        return dst;
    }
}
使用
public class Client {
    public static void main(String[] args){
        VoltageAdapter voltageAdapter = new VoltageAdapter(new Volate220V());
        voltageAdapter.output5V();
    }
}

我比较常用第二种,因为聚合优于继承



这篇关于设计模式——适配器模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程