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);
      }
    }

  • 相关阅读:
    Oracle86和92语法的连接,子查询,集合的操作
    Oracle笛卡尔积,分组,多表连接
    Oracle排序,伪列,字符函数,数字函数,日期行数
    Oracle基本的数据类型以及简单sql查询
    用while语句打印阶乘
    Switch小练习
    if语句多表达式与一个表达式
    三元操作符
    整数的二进制表达
    与或
  • 原文地址:https://www.cnblogs.com/zl96291/p/10126031.html
Copyright © 2011-2022 走看看