设计模式-适配器模式

需求:
我们的手机是TypeC接口的充电口,但是充电宝是USB接口的
我们需要一个转换头,将TypeC的接口转换为USB接口

USB接口

public interface IUsb {

	// 使用USB接口充电
    void chargeWithUsb();
}

USB接口的实现类

public class Usb implements IUsb {

    @Override
    public void chargeWithUsb() {
        System.out.println("使用USB接口充电");
    }
}

TypeC接口

public interface ITypeC {
	
	// 使用TypeC接口充电
    void chargeWithTypeC();
}

⏹定义一个适配器A

类适配器模式: 通过继承来实现适配器功能

// 我们在适配其中实现了TypeC的接口,调用了Usb的功能
public class AdapterA extends Usb implements ITypeC {

    @Override
    public void chargeWithTypeC() {
        super.chargeWithUsb();
    }
}

⏹定义一个适配器B

对象适配器: 通过组合来实现适配器功能

public class AdapterB implements ITypeC {

    private Usb usb;
	
	// 实例化的时候,将Usb对象传入
    public AdapterB(Usb usb) {
        this.usb = usb;
    }

    @Override
    public void chargeWithTypeC() {
        usb.chargeWithUsb();
    }
}

⏹使用转换器充电

// 使用转换器A将TypeC转换为USB
ITypeC adapterA = new AdapterA();
adapterA.chargeWithTypeC();  // 使用USB接口充电

// 使用转换器B将TypeC转换为USB
ITypeC adapterB = new AdapterB(new Usb());
adapterB.chargeWithTypeC();  // 使用USB接口充电

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值