adapter 模式

一、adapter是什么

属于结构模式(持有或继承被适配的类)。
对功能类进行包装,转换成客户端希望的样子,所以也叫包装模式。
实现比较直观,比较简单,就是加了一层封装。

二、adapter的使用场景

系统改造:功能在现有类中已实现,仅对外接口不符合要求,可通过adapter兼容。

三、adapter的实现

target:目标定义,客户端期望的样子。
adaptee:被适配者,已有的功能类。
adapter:适配器,封装adaptee为target。
注意:target的形态可以是interface、也可以是抽象类。
在这里插入图片描述代码举例:


// target:目标接口定义
public interface Charger {
   public void charge();
}

//adaptee:被适配者,已存在的实现了功能的类
public class Charge220v {
   public void charge() {
       System.out.println("220v charge工作了");

   }
}

//adapter:适配器,利用现有类实现目标接口
public class ChargeAdapter implements Charger {
   private Charge220v charge220v;

   public ChargeAdapter(Charge220v charge220v) {
       this.charge220v = charge220v;
   }

   @Override
   public void charge() {
       charge220v.charge();
       System.out.println("adapter 转换");
   }
}

//client
public class ClientMain {
   public static void main(String[] args) {
       Charger charger = new ChargeAdapter(new Charge220v());
       charger.charge();
       Charger charger2 = new ChargeAdapter2(new Charge110v());
       charger2.charge();
   }
}

四、在源码中的应用

1)IO类:
2)jdbc-odbc-bridge

五、参考

1.较全面的总结:https://blog.csdn.net/qq_37774171/article/details/122643900
2.https://www.oodesign.com/adapter-pattern

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值