美文网首页
三种适配器模式

三种适配器模式

作者: 随遇而安_90d2 | 来源:发表于2019-11-07 20:10 被阅读0次

一、概述

定义:适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。

意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的

如何解决:继承或依赖(推荐)。

关键代码:适配器继承或依赖已有的对象,实现想要的目标接口。

二、适配器模式

适配器模式里有三种角色:

  • 需要被适配的类、对象和接口(已知的):Adaptee
  • 最终想要得到的:Target
  • 适配器:Adapter

适配器可以分为三种:类适配器模式、对象适配器模式、接口适配器模式

1.类适配器模式

在Java中不可能实现,因为它要求多重继承。

类适配器类图
它与对象适配器的差别是类适配器继承了Target和Adaptee。而对象适配器利用组合的方式将请求传送给被适配者。

2.对象适配器模式

对象适配器类图

目标接口:

public interface Target {
    void RMB();
}

被适配者接口:

public interface Adaptee {
    void Dollar();
}

被适配者接口的实现类:

public class AdapteeImpl implements Adaptee {
    @Override
    public void Dollar() {
        System.out.println("我用的是dollar");
    }
}

Adapter适配器类:

public class Adapter implements Target {

    Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void RMB() {
        System.out.println("我以为自己用的是人民币");
        adaptee.Dollar();
    }
}

测试类:

public class MainTest  {
    public static void main(String[] args) {

        Adaptee adaptee=new AdapteeImpl();

        Target adapter =new Adapter(adaptee);
        adapter.RMB();
    }
}

3.接口适配器模式

好处:它解决接口与接口实现类之间继承矛盾问题,当我们不需要实现类全部实现接口提供的方法时,可先设计一个抽象类实现接口,并为该接口中每个方法提供一个默认实现(空方法),那么该抽象类的子类可有选择地覆盖父类的某些方法来实现需求,它适用于一个接口不想使用其所有的方法的情况。

  • 使用抽象类分离了接口与接口实现
  • 抽象类分摊接口中需要常用的方法
  • 使得接口实现类像逛超市一样,可以随意选择接口中的方法来实现
接口适配器类图

相关文章

  • Java 设计模式(Design Patterns)(二)

    个人博客:haichenyi.com。感谢关注 六、适配器模式 分类有三种:类的适配器模式,对象的适配器模式,接口...

  • 设计模式之适配器模式

    什么是适配器模式?看(盗来的)图。 足够直观,不费口舌解释了。 直接上代码。适配器模式分为三种: 类的适配器模式 ...

  • 二十三种设计模式包括工厂模式、建造者模式、工厂方法模式、原始模型模式、单例模式、适配器模式、桥梁模式、合成模式、装...

  • 实际项目运用之Adapter模式(适配器模式)

    1. 模式简介 适配器模式解决的问题:让原本因为接口不兼容而不能一起工作的类可以一起工作 适配器模式中有三种角色:...

  • Java设计模式(二)

    talk is cheap show me the code 适配器模式 类适配器模式 接口适配器模式 对象适配器...

  • 适配器模式

    目录 1、什么是适配器模式? 2、适配器模式结构? 3、如何实现适配器模式? 4、适配器模式的特点? 5、适配器模...

  • Android常用设计模式(二)

    继上一篇 Android常用设计模式(一)里认识了观察者,适配器,代理等三种模式,这一篇将会讲解以下三种模式: 工...

  • 设计模式之适配器模式

    适配器模式: 类适配器模式、对象适配器模式、接口适配器模式 1.类适配器模式:新的接口出现了,但是和老的接口不兼容...

  • 学习iOS设计模式第一章 适配器(Adapter)

    今天学习了iOS设计模式中的适配器模式,适配器有两种模式对象适配器模式-- 在这种适配器模式中,适配器容纳一个它包...

  • 第4章 结构型模式-适配器模式

    一、适配器模式简介 二、适配器模式的优点 三、适配器模式的实例

网友评论

      本文标题:三种适配器模式

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