其他分享
首页 > 其他分享> > 设计模式之适配器模式

设计模式之适配器模式

作者:互联网

适配器模式

什么是适配器模式

适配器模式是将一个类的接口转换成客户希望的另一个接口,适配器模式可以使原本由于接口不兼容而不能一起工作的那些类可以一起工作。

其原理图如下:

在这里插入图片描述

为什么要使用适配器模式

现在,手机需要进行充电,但是手机需要的是5V的电压,墙上的插口只能提供220V的电压(外国还有110V电压),这显然是不能直接给手机充电的。

在日常生活中,我们是使用电源适配器进行适配,顾名思义,这是一个适配器。我们可以通过手机的充电过程来理解适配器模式:

首先,有一个插孔(墙上或插线板上的220V的插孔):

public class Jack220V {
    public int output220V() {
        System.out.println("墙上插孔 220V 电压输出");
        return 220;
    }
}

指定一个标准,电源适配器需要满足该标准:

public interface IAdapter {
    int input(); // 输入电压

    int convert(); //进行电压转换

    int output(); //输出电压
}

现在的电源适配器:

public class Jack5V implements IAdapter {
    private Jack220V jack = new Jack220V(); //聚合一个被适配的类,以此来使用该类的方法,这种方式叫做对象适配器;也可以让这个类继承被适配的类,也可以达到该效果,只是耦合度有些过高,这种方式叫做类适配器。

    @Override
    public int input() {
        int voltage = jack.output220V();
        System.out.println("电源适配器获取 220V 电压");
        return voltage;
    }

    @Override
    public int convert() {
        int voltage = input();
        System.out.println("电源适配器进行电压变化");
        return voltage / 44;
    }

    @Override
    public int output() {
        int voltage = convert();
        System.out.println("电源适配器输出 5V 电压");
        return voltage;
    }
}

接下来,我们可以进行充电了:

public class Phone {
    public static void main(String[] args) {
        System.out.println("手机充电:");
        Jack5V jack = new Jack5V();
        System.out.println("手机充电电压:" + jack.output() + "V");
    }
}

当前的类图

在这里插入图片描述

什么时候用适配器模式

标签:int,适配器,模式,voltage,电压,设计模式,public
来源: https://blog.csdn.net/weixin_45413689/article/details/119425217