设计模式-适配器模式-以手机耳机转换口为例

简介

适配器模式的定义非常的简单,其主要指现在具有两个类,分别为A类和B类,B类需要调用A类接口来获取一些数据,但是A类的接口提供的返回类型为C,B类需要的返回类型为D。为了在不改变两个类接口的情况下使两者兼容,我们就需要开发一个新的接口,用来将C转化为D,使得B类可以使用A类的接口。这就是适配器模式的主要作用。

案例

在实际的生活中,有些手机已经没有提供3.5mm的耳机接口,而是转用type-c接口来提供接入耳机功能,但是如果我们此时手上恰好有一个3.5mm接口的耳机并且想使用,我们就需要一个转接器。

耳机类

@Data
//耳机类
public class Headset {
    //耳机接口
    HeadsetInterface headsetInterface=new HeadsetInterface();
}

耳机有一个耳机接口

耳机接口类

@Data
public class HeadsetInterface {
    String str="3.5mm接口";
}

耳机接口为3.5mm

手机类

@Data
public class Phone {
    PhoneInterface phoneInterface=new PhoneInterface();
    public void accept(PhoneInterface phoneInterface){
        System.out.println("连接到耳机");
    }
}

手机有一个连接耳机的函数

手机接口类

@Data
public class PhoneInterface {
    String str="type-c接口";
}

手机接口为type-c接口

转换器类

public class InterfaceAdapter {
    //3.5mm接口转化为type-c接口
    public PhoneInterface adapter(HeadsetInterface headsetInterface)
    {
        //在这里进行复杂的接口类型转化,我这里就没有设计了
        return new PhoneInterface();
    }
}

将耳机接口转化为手机接口

测试

@Test
    public void HeadsetToPhone()
    {
        Headset headset = new Headset();
        System.out.println("我现在有一副耳机其接口为"+headset.getHeadsetInterface().getStr());
        Phone phone=new Phone();
        System.out.println("我现在有一个手机其接口为"+phone.getPhoneInterface().getStr());

        System.out.println("使用转换器");
        InterfaceAdapter interfaceAdapter=new InterfaceAdapter();
        phone.accept(interfaceAdapter.adapter(headset.getHeadsetInterface()));
    }

测试结果

我现在有一副耳机其接口为3.5mm接口
我现在有一个手机其接口为type-c接口
使用转换器
连接到耳机
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值