Java 适配器模式

适配器模式用于消除接口不匹配造成的类兼容性问题

类模式的适配器采用继承的方式复用接口

对象模式的适配器采用组合的方式复用

适配器模式-对象模式

新建适配器,接受原类对象的所有方法,然后生成新需要的接口方法

  • 原类对象
/**
 * 原类
 */
public class Target {

    /**
     * 一种逻辑(算法)
     * @param str
     * @return
     */
    public String Arithmetic(String str) {
        return str;
    }
}
  • 适配接口
/**
 * 适配接口
 */
public interface IAdapter {

    /**
     * 适配逻辑(算法)
     * @param str
     * @return
     */
    String Arithmetic_Another(String str);
}
  • 适配器
public class Adapter implements IAdapter {
    Target tar;

    public Adapter(Target filter) {
        this.tar = filter;
    }

    /**
     * 原逻辑tar
     *
     * @param str
     * @return
     */
    public String Arithmetic(String str) {
        return "原逻辑" + this.tar.Arithmetic(str);
    }

    /**
     * 适配逻辑
     *
     * @param str
     * @return
     */
    public String Arithmetic_Another(String str) {
        return "适配逻辑";
    }
}
  • 测试
    public static void main(String[] args){
        Target t = new Target();
        IAdapter ia = new Adapter(t);
        System.out.println(((Adapter) ia).Arithmetic("……"));
        System.out.println(ia.Arithmetic_Another(""));
    }
适配器模式-类模式

通过创建类继承类和实现接口来实现适配

  • 原类对象
/**
 * 原类
 */
public class Target {

    /**
     * 一种逻辑(算法)
     * @param str
     * @return
     */
    public String Arithmetic(String str) {
        return str;
    }
}
  • 适配接口
/**
 * 适配接口
 */
public interface IAdapter {
    /**
     * 适配逻辑(算法)
     * @param str
     * @return
     */
    public String Arithmetic_Another(String str);

    public String Arithmetic(String str);
}
  • 适配器
public class Adapter extends Target implements IAdapter {
    /**
     * 适配逻辑
     *
     * @param str
     * @return
     */
    public String Arithmetic_Another(String str) {
        return "适配逻辑";
    }
}
  • 测试
    public static void main(String[] args){
        IAdapter ia = new Adapter();
        System.out.println(ia.Arithmetic("原逻辑……"));
        System.out.println(ia.Arithmetic_Another(""));
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在...
    今晚打肉山阅读 418评论 0 0
  • 其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...
    zhuzhiqiang00阅读 2,146评论 0 2
  • 适配器模式作为一种结构型设计模式,在软件系统设计开发中使用到的频率非常之高,深受开发人员的青睐。本文会讲解适配器模...
    Tifkingsly阅读 7,863评论 1 3
  • java的适配器模式利用聚合的方式将正确的业务方法适配到新的接口上,在代码实现和大概的逻辑结构上都很类似代理设计模...
    _palm阅读 708评论 0 2
  • 不管你喜不喜欢,会议都是我们职业生涯的一部分。我们在会上做决定,分配计划,交流意见,但是不是所有的会议都有产出,有...
    般若素心阅读 1,134评论 1 0