适配器模式

适配器模式是一种设计模式,通过转换接口,使得原本不兼容的类能够协同工作。例如,使用Lightning转接头将普通USB线适配为iPhone充电线,或者旅行充电转换器调整电器插头以适应不同国家的插座规格。在软件开发中,适配器模式用于将系统接口转换为客户所需的API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是适配器模式?

试想下,你手上的IPhone充电线隔三差五的坏掉,但刚好有好几条耐用的Android通用USB线,这时候你可能会上淘宝买10块钱5个的Lightening转接头,插到普通USB线上来给IPhone继续充电,这就是显示生活中适配器的应用。(当然,这样可能会损坏IPhone)

另外一个常见的例子就是旅行充电转换器,适配器模式将电器插头转换成插座的规格,当然,最终也要电器本身与当地的供电电压符合才可以正常工作。
这里写图片描述

而在日常工作中,适配器模式用于将我们系统中对应的的功能接口适配成客户所需要的api
一般适配模式的类图如下:
这里写图片描述

例子

现在来实现一个普通usb线转lightening的转换头。
这里写图片描述

  1. 这是普通Usb线:
public class UsbCable implements GenerateChargeCable{
    @Override
    public void charge() {
        System.out.println("Charging...");
        //do stuff
    }
}
  1. 这是Lightening线的接口:
public interface Lightening {

    void chargeIphone();
}
  1. 实现一个普通Usb转Lightening的接口:
public class UsbToLighteningAdapter implements Lightening {
    UsbCable mCable;//普通usb线实例

    public UsbToLighteningAdapter(UsbCable cable) {
        System.out.println("Set adapter...");
        mCable = cable;
    }

    @Override
    public void chargeIphone() { //充IPhone的时候用普通usb线的充电行为代替
        System.out.println("Charging Iphone...");
        mCable.charge();
    }
}

4.万事具备,现在使用转接头为IPhone充电:

public class Client {

    public static void main(String[] args) {
        //创建通用usb线的实例
        UsbCable myCable = new UsbCable();

        //创建一个adapter,将通用线转成Lightening接口
        Lightening lighteningCable = new UsbToLighteningAdapter(myCable);

        //开始充电
        lighteningCable.chargeIphone();
    }
}

输出:

Set adapter...
Charging Iphone...
Charging...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值