设计模式之适配器模式

  • 介绍
    适配器是将两个不兼容的类融合在一起。例如,经常碰到要在两个没有关系的类型之间进行交互,第一个解决方案是修改各自类的接口,但是如果没有源代码或者我们不愿意为了一个应用而修改各自的接口,此时我们往往会使用一个Adapter,在这两种接口之间创建一个“混血儿”接口,这个Adapter会将这两个接口进行兼容,在不修改原代码的情况下满足需求。
  • 定义
    适配器模式把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作
  • 使用场景
    (1)系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容。
    (2)需要一个统一的输出接口,而输入端的类型不可预知。
  • 适配器模式的类型

(1)类适配器模式

//Target角色
public interface FiveVolt{
   public int getVolt5();
}
//需要被转换的对象
public class Volt220{
   public int getVolt220(){
      return 220;
   }
}
//Adapter角色,将220V的电压转换成5V的电压
public class VoltAdapter extends Volt220 implements FiveVolt{
   public int getVolt5(){
       return 5;
   }
}
public class Test{
   public static void main(String[] args){
      VoltAdapter adapter = new VoltAdapter();
      System.out.println("输出电压:"+adapter.getVolt5());
}

(2)对象适配器模式(优于类适配器模式)
与类适配器模式一样,对象适配器模式把被适配的类的API转换成为目标类的API,与类适配器模式不同的是,对象的适配器模式不是使用继承关系连接到Adaptee类(被代理类),而是使用代理关系连接到Adaptee类。

//Target角色
public interface FiveVolt{
   public int getVolt5();
}
//需要被转换的对象
public class Volt220{
   public int getVolt220(){
      return 220;
   }
}
//Adapter角色,将220V的电压转换成5V的电压
public class VoltAdapter implements FiveVolt{
   Volt220 mVolt220;

   public VoltAdapter(Volt220 adaptee){
       mVolt220 =a daptee;
   }

   public int getVolt220(){
      mVolt220.getVolt220();
   }

   public int getVolt5(){
       return 5;
   }
}
public class Test{
   public static void main(String[] args){
      VoltAdapter adapter = new VoltAdapter();
      System.out.println("输出电压:"+adapter.getVolt5());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值