Java设计模式:适配器模式

适配器模式

定义:

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

应用场景:

系统需要使用现有类,而这些类不符合系统系统的接口。

使用第三方组件,组件接口定义和自己定义不同,不希望修改自己的接口,但是要使用第三方组件接口的功能。

优点:

符合单一职责原则,符合开闭原则。

代码示例:

适配器模式主要分三类:类的适配器模式、对象的适配器模式、接口的适配器模式。

生活当中,手机的电源适配器就是很好的列子。标准电压是220V,二手机可能只需要5V电压就够了,电源适配器就可用将220V电压转成5V电压。

目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。

需要适配的类(Adaptee):需要适配的类或适配者类。

适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。

对象的适配器模式:

package com.test;

public class ObjectAdapter {
    public static void main(String[] args) {
        Target target = new Adapter(new Adaptee());
        target.output5v();
    }
}

class Adaptee{
    public int output220v(){
        return 220;
    }
}

interface Target{
    int output5v();
}

class Adapter implements Target{

    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    public int output5v() {
        int output220v = adaptee.output220v();
        System.out.println("原始电压:"+output220v+"---输出电压:"+5);
        return 5;
    }
}

类的适配器模式:

package com.test.v;

public class ClassAdapter {
    public static void main(String[] args) {
        Adapter adapter = new Adapter();
        adapter.output5v();
    }
}


class Adaptee{
    public int output220v(){
        return 220;
    }
}

interface Target{
    int output5v();
}

class Adapter extends Adaptee implements Target{
    public int output5v() {
        int output220v = output220v();
        System.out.println("原始电压:"+output220v+"---输出电压:"+5);
        return 5;
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值