Java 设计模式--适配器模式

本设计模式资料源于慕课网,讲师:Geely 《Java设计模式精讲 Debug方式+内存分析》,本人作为自己手打整理作为学习的归纳总结。

一,模式介绍

1,定义和介绍

  • 定义:将一个类的接口转化成客户需要的另外一个接口
  • 使原本接口不兼容的类可以一起工作
  • 类型:介绍

2,适用场景

  • 已经存在的类,它的方法和需求不匹配的时候时(方法结果相同或类似)
  • 不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品,不同厂家造成功能类似而接口不相同的情况下的解决方案

3,优点

  • 能提高类的透明性和复用,现有的类复用但不需要改变
  • 目标类和适配器类解耦,提高程序扩展性
  • 符合开闭原则

4,缺点

  • 适配器编写过程需要全面考虑,可能会增加系统的复杂性
  • 增加系统代码可读的难度

二,代码演示

这里是要得到的目标接口

package com.try1.design.structural.adapter.object_classadapter;

public interface Target {
    public void request();
}

直接实现的类

package com.try1.design.structural.adapter.object_classadapter;

public class ConcreteTarget implements Target {
    @Override
    public void request() {
        System.out.println("实现直接继承方法");
    }
}

需要进行改变的方法

package com.try1.design.structural.adapter.object_classadapter;

public class Adaptee{
    public void AdapteeRequest(){
        System.out.println("要适配的方法");
    }
}

适配器通过继承和实现来使得适配的方法满足目标接口
值得注意的是这里运用了继承或者是在类里面new一个的两种方法。

package com.try1.design.structural.adapter.object_classadapter;

public class Adapter extends Adaptee implements Target {
    //对象适配器的方法则是不用继承,直接在适配器类,new一个相关的类
//    private Adaptee adaptee=new Adaptee();

    @Override
    public void request() {
        //实行适配前的操作
        super.AdapteeRequest();
        //进行适配后的操作

//对象适配器的操作和上方类似
//      adaptee.AdapteeRequest();
    }
}

下面是一个实际例子

  • 业务场景
    需要将220v的交流电转化成5v的直流电
package com.try1.design.structural.adapter.power;

public interface DC5 {
    public int create5V();
}

package com.try1.design.structural.adapter.power;

public class AC220 {
    public int create220V(){
        return 220;
    }
}

package com.try1.design.structural.adapter.power;

public class PowerAdapter extends AC220 implements DC5 {

    @Override
    public int create5V() {
        return super.create220V()/44;
    }
}

package com.try1.design.structural.adapter.power;

public class Test {
    public static void main(String[] args) {
        DC5 dc5=new PowerAdapter();
        System.out.println(dc5.create5V());
    }
}

三,总结

适配器设计模式,给我的第一感觉也是电源适配器这样的感觉,将一个原本不符合要求的接口,跟另外一个类进行改造,最终生产出我们需要的接口。
不过,确实这种适配器的方法还是少用,不同于其他设计模式,这种设计模式有点想亡羊补牢的既视感。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值