适配器模式

适配器模式的作用:使两个不兼容的接口可以一起工作。把一个类的接口,转变为用户期待的另一种标准接口。通过改变调用接口,实现重复使用。有两种实现模式:类适配器和对象适配器。

1.类适配器

特点:通过继承实现
有三个角色:
  1.Adaptee:具体类,具有自己特有的功能,但不符合既有的标准接口。
  2.Adaptor:标准接口,但没有用户期待的功能
  3.Adapter:适配器类,具体类,通过既定的标准接口提供了用户期待的功能。
缺点:Java中单继承,适配器类Adapter只能为一个类进行适配。
//既有具体类,提供特殊功能
public class Adaptee{
  public void specificRequest()
  {
      System.out.print("特殊功能");
  }
}
//接口,提供标准接口
public interface Target{
  void request();
}
//具体类,通过标准接口,提供用户需求的功能。
public class Adapter extends Adaptee implements Target{
@Override
  void request()
 {
   ........
   super.specificRequest();
 }
}

2.对象适配器

特点:通过组合实现,与类适配器一样存在三个角色
差异:不采用继承的方式,而采用组合,并在适配器类的构造函数中传入具体类作为参数。
优点:解决了类适配模式只能为一个具体类进行适配的局限,具体类及其子类都可以被适配。
缺点:置换不同类型的具体类不容易。
//既有具体类,提供特殊功能
public class Adaptee{
  public void specificRequest()
  {
      System.out.print("特殊功能");
  }
}
//接口,提供标准接口
public interface Target{
  void request();
}
//具体类,通过标准接口,提供用户需求的功能。
public class Adapter implements Target{
 private Adaptee adaptee;
 public Adapter(Adaptee adaptee)
 {
 	this.adaptee=adaptee;
 }
@Override
  void request()
 {
   ........
   adaptee.specificRequest();
 }
}

3.Java中的适配器

主要用于字节流到字符流的转换上,如InputStreamReader、OutputStreamWriter。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值