设计模式-结构型模式-适配器模式

适配器模式

把一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法在一起工作的两个类能在一起工作

功能类似但是接口不同这时就可以使用适配器,一般情况下在前期第一时间考虑通过重构统一接口。比如在使用第三方开发组件的时候,自己的系统接口与组件接口不同,不用为了迎合去改自己的接口可以使用适配器模式。

Target类目标接口客户端可识别,Adaptee需要适配的类,Adapter适配器类

//类适配器
class Adaptee{
  public void sepcialMethod(){
    System.out.println("yyx!");
  }
}
interface Target(){
  public void normalMethod();
}
class actualTarget implements Target(){
  public void normalMethod(){
    System.out.println("yyx");
  }
}
class Adapter extends Adaptee implements Target(){
  public void normalMethod(){
    super.sepcialMethod();
  }
}
//对象适配器
class Adapter implements Target(){
  private Adaptee adaptee;
  public Adapter(Adaptee adaptee){
    this.adaptee = adaptee;
  }
  poublic void normalMethod(){
    this.adaptee.sepecialMethod();
  }
}

JAVAIO中有许多用到了对象适配器

InputSreamReader是适配器类 StreamDecoder(传入InputStream,这个类将InputStream从字节流变成了字符流)是适配者 Reader是目标类 将InputStream和Reader适配。

StringReader是适配器类 String是适配者 Reader是目标类 将String和Reader适配。

posted @ 2021-01-27 10:47  rd-yyx  阅读(73)  评论(0)    收藏  举报