美文网首页
设计模式之适配器模式

设计模式之适配器模式

作者: 超级大鸡腿 | 来源:发表于2018-12-05 17:05 被阅读0次

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

使用背景:

美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V,换个例子来说,就是你去到国外,但是你不会讲那一国的语言,而你想沟通的那个人,不会说中国话,这时候你需要一个会两国语言的人,就可以解决相互沟通的这个问题。在软件开发的过程中,如果希望复用某些系统现存的类去完成某种需求,但是接口与复用环境要求不一致的时候,这时候我们可以使用适配器模式将控制范围之外的某些原有对象与某个接口匹配,以求达到某种需求。

适配器模式的基本组成:

Target

客户所期待的接口,可以具体或者抽象的类,也可以是接口。

Adapter

通过在内部包装一个Adaptee对象,把源接口转换成目标接口。

Adaptee

需要适配的类。

具体实现如下:

Target类

package adapter;

/**

* Created by canon on 2018/12/5.

*/

public interface Target {

    void request();

}

Adaptee类

package adapter;

/**

* Created by canon on 2018/12/5.

*/

public class Adaptee {

  public void specialRequest(){

      System.out.println("特殊请求");

  }

}

Adapter类

package adapter;

/**

* Created by canon on 2018/12/5.

*/

public class Adapter implements Target {

    private Adaptee adaptee = new Adaptee();

    @Override

    public void request() {

        adaptee.specialRequest();

    }

}

客户端

package adapter;

/**

* Created by canon on 2018/12/5.

*/

public class controller {

    public static void main(String[] args) {

        Target target = new Adapter();

        target.request();

    }

}

----------------------------客户端输出--------------------------------

特殊请求

Process finished with exit code 0

以上是适配器模式的对象适配器的基本用法。不管是类适配器模式还是对象适配器模式。都将目标类和适配者类解耦,通过引入一个适配器类来重用现有的适配者类,无需修改原有结构。增加了类的透明性和复用性,将具体的业务实现过程封装在适配者类中,对于客户端类而言是透明的,而且提高了适配者的复用性,同一适配者类可以在多个不同的系统中复用。灵活性和扩展性都非常好,通过使用配置文件,可以很方便的更换适配器,增加新的适配器,完全复合开闭原则。

缺点:

过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部被适配成了B接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。模式虽好,系统设计之初,出现接口不同时,首先考虑的不是适配器模式,而应该是考虑通过重构统一接口解决问题。

相关文章

  • 简说设计模式之适配器模式

    前言:对于设计模式基础概念可以去看[简说设计模式之设计模式概述] 一、什么是适配器模式 适配器模式(Adapter...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 设计模式详解——适配器模式

    本篇文章介绍一种设计模式——命令模式。本篇文章内容参考《JAVA与模式》之适配器模式,Android设计模式源码解...

  • 设计模式之适配器模式

    设计模式之适配器模式 1. 模式定义 适配器模式又称包装器模式,属于结构型模式,它可以将一个接口转换成客户希望的另...

  • 最常用的设计模式---适配器模式(C++实现)

    适配器模式属于结构型的设计模式,它是结构型设计模式之首(用的最多的结构型设计模式)。 适配器设计模式也并不复杂,适...

  • iOS设计模式(5)策略模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(6)模板模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(7)建造者模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(4)抽象工厂模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(1)简单工厂模式

    设计模式系列文章 《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器模式》《iOS设计模式(4)抽象工厂...

网友评论

      本文标题:设计模式之适配器模式

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