zoukankan      html  css  js  c++  java
  • Java适配器模式

    适配器模式

      适配器模式就是将一个类的接口转换成我们希望的另一个接口。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);
      }
    }

  • 相关阅读:
    Object中的线程等待和Condition
    synchronized锁和Lock锁
    手写二叉排序树(二叉查找树、二叉搜索树)
    JDK源码之ArrayList-Iterator
    JDK源码之ArrayList
    Integer&int,自动装箱&自动拆箱
    学习Zookeeper第一课
    Thumbnailator处理图片
    线程的停止和中断
    BigInteger和BigDecimal
  • 原文地址:https://www.cnblogs.com/zl96291/p/10126031.html
Copyright © 2011-2022 走看看