设计模式——适配器模式

场景引入

想象这样一个场景:在之前的手机上面都是有一个耳机孔的,但是现在却逐渐的取消,只有一个type接口。在这种情况下,我们需要一个type接口的转化器。在这种情况下,解决方法就有两种:1)将耳机的插口也换成type的;2)为了使之前的耳机还能使用,我们需要一个转接口。即一边是插入type接口的,一边是插入那种圆形的耳机的。解决方案二中的转接器其实就是一个适配器。其将一些老的接口进行适配从而可以满足新的接口需求。

代码实现

Earphone interface

public class Earphone {
    //耳机的插入
    public void insert(){
        System.out.println("满足手机的接口需求");
    };
}

Phone interface

interface Phone {
    public void play();
}

Adaptee class

//对象适配器
public class Adaptee implements Phone{

    private Earphone earphone;


    public Adaptee(Earphone earphone) {
        this.earphone = earphone;
    }

    @Override
    public void play() {
        System.out.println("使用适配器,将耳机转为typeC接口");
        earphone.insert();
    }
}


Test class

public class Test {
    public static void main(String[] args) {
        Phone phone = new Adaptee(new Earphone());
        phone.play();
    }
}

类适配器

Adapter class

public class Adapter extends Earphone implements Phone{
    @Override
    public void play() {
        System.out.println("使用适配器,将耳机转为typeC接口");
        this.insert();
    }
}

Test class

public class Test {
    public static void main(String[] args) {
        Phone phone = new Adapter();
        phone.play();
    }
}

个人理解

适配器就是将旧的类进行适配,从而满足新的需求。其实看起来就像是新建一个子类,然后对其中的方法进行重写,然后利用多态的性质,调用新的子类的方法。说其是适配器可能就是因为适配器是适配两个不同的对象,而不是那种具有父子类关系的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值