Java适配器模式

痞子三分冷 提交于 2019-12-20 17:44:33

适配器模式

  适配器模式就是将一个类的接口转换成我们希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的类可以在一起工作。

角色

  目标接口(Target):希望的接口。可以是具体的类,或者接口。

  需要适配的类(Adaptee):需要适配的类,或者适配者的类。

  适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。

Demo:

//接口规则

public interface Target {

  public void handleReq();
}

//适配器,继承接口文档,并且实现对应的方法

public class Adpatee implements Target{

  @Override
  public void handleReq() {
    System.out.println("完成客户端的要求");
  }
}

//接口的具体实现类,同时继承适配器类,这样就可以使用其中的方法,完成适配

public class TargetImpl extends Adpatee implements Target{

  @Override
  public void handleReq() {
    super.handleReq();
   }

}

客户端调用

public class Client {
  public static void test(Target t) {
    t.handleReq();
  }
  public static void main(String[] args) {
    Target t = new TargetImpl();
    test(t);
  }
}

上面是通过类继承的方法来实现的,缺点就是类只能单继承,不能实现多个类

解决方法:

  通过在类中创建对象的方式进行处理

public class TargetImpl extends Adpatee implements Target{

  private Adpatee a;

  public TargetImpl(Adpatee a) {
    super();
    this.a = a;
  }

  @Override
  public void handleReq() {
    a.handleReq();
  }

}

public class Client {
   public static void test(Target t) {
t    .handleReq();
    }
  public static void main(String[] args) {
    Target t = new TargetImpl(new Adpatee());
    test(t);
  }
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!