美文网首页
Java学习笔记(9)-23种设计模式之适配器模式

Java学习笔记(9)-23种设计模式之适配器模式

作者: 非典型程序猿 | 来源:发表于2020-02-24 15:57 被阅读0次

这篇文章开始总结结构型模式的第二种模式,适配器模式,适配器这个概念大家应该听到比较多,在使用各种ListView,RecycleView时适配器都是必要的,我们今天开始总结适配器模式的基本原理。

定义

适配器的核心思想就是将一个类中的某个接口转化为另一个新的类的访问接口,其可以实现新的功能也同时可以兼容老的接口里的业务逻辑。适配器模式分为类结构型模式和对象型结构模式,我会把两者的示例代码都举例说明。

结构

  • 适配的接口 : 需要被兼容的接口
  • 需要被适配的类 :提供被兼容接口的类
  • 作为适配器的类 : 作为适配器,兼容老的接口,作为新的访问入口

类结构型模式代码示例

/**
 * 类适配器模式
 */
public class MyTest{
    public static void main(String[] args) throws CloneNotSupportedException {
        System.out.println("开始适配器模式代码测试...");
        Adapter adapter = new Adapter();
        adapter.targetMethod();
    }
    /**
     * 需要适配的目标接口
     */
    interface Target{
        void targetMethod();
    }
    /**
     * 需要被适配的类
     */
    static class Adaptee{
        //需要被适配的对外的接口
        public static void method(){
            System.out.println("被适配的老业务已被调用...");
        }
    }
    /**
     * 适配的类,作为新的访问入口
     */
    static class Adapter extends Adaptee implements Target{
        /**
         * 新的访问入口,兼容老的内容
         */
        @Override
        public void targetMethod() {
            method();
        }
    }
}

类结构型模式写时只需两步

  • 第一步:定义好新的兼容的接口
  • 第二步:将适配器类继承被适配的类,并实现新的兼容接口方法

对象结构型模式

/**
 * 对象适配器模式
 */
public class MyTest{
    public static void main(String[] args) throws CloneNotSupportedException {
        System.out.println("开始对象适配器模式代码测试...");
        Adaptee adaptee = new Adaptee();
        Adapter adapter = new Adapter(adaptee);
        adapter.targetMethod();
    }
    /**
     * 需要适配的目标接口
     */
    interface Target{
        void targetMethod();
    }
    /**
     * 需要被适配的类
     */
    static class Adaptee{
        //需要被适配的对外的接口
        public static void method(){
            System.out.println("被适配的老业务已被调用...");
        }
    }
    /**
     * 适配的类,作为新的访问入口
     */
    static class Adapter implements Target{
        private Adaptee adaptee ;
        /**
         * 新的访问入口,兼容老的内容
         */
        public Adapter(Adaptee adaptee){
            this.adaptee = adaptee;
        }
        @Override
        public void targetMethod() {
            if(adaptee == null){
                System.out.println("适配器参数错误...");
                return;
            }
            adaptee.method();
        }
    }
}

对象型结构模式书写时需要3步

  • 第一步:定义好新的兼容的接口
  • 第二步:定义一个适配器类并实现兼容的接口
  • 第三步:定义好一个可以传递被适配器类的实例对象的方式,可以写一个构造方法或定义一个普通方法
  • 第四步:利用在适配器类中传递的被适配器的类的参数去执行旧的业务逻辑代码。

两者的对比

  • 类结构型适配器在写的过程中需要适配器继承被适配的类,因此要求我们对被适配的类的结构要非常的了解
  • 对象结构型适配器不需要我们继承被适配的类。只需要将其作为一个参数传入适配器,再进行代码的调用,这种方式比较简单,因此使用的也比较多。
    今天的适配器模式就总结到这里啦,觉得对您有帮助记得点个赞~

相关文章

  • java/android 设计模式学习笔记(6)---适配器模式

    java/android 设计模式学习笔记(6)---适配器模式 【备注】只用于个人收藏

  • Java学习记录--适配器模式

    Java学习记录--适配器模式 标签(空格分隔): java 适配器模式是一种比较简单的设计模式,该博文从Java...

  • 浅析Java设计模式【1】——观察者

    前情内容 浅析Java设计模式【1】——观察者 浅析Java设计模式【2】——适配器 浅析Java设计模式【3】—...

  • 浅析Java设计模式【2】——适配器

    前情内容 浅析Java设计模式【1】——观察者 浅析Java设计模式【2】——适配器 浅析Java设计模式【3】—...

  • java建造者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java单例模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java外观模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java适配器模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java观察者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java代理模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

网友评论

      本文标题:Java学习笔记(9)-23种设计模式之适配器模式

      本文链接:https://www.haomeiwen.com/subject/xbvvqhtx.html