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

设计模式之适配器模式

作者: 老羊_肖恩 | 来源:发表于2017-06-13 10:27 被阅读8次

适配器模式的定义

适配器模式(Adaptor Pattern)的定义如下:
  Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces. 即:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法工作在一起的两个类一起工作。适配器在生活中很常见,其通用类图如下:


Adapter.jpg

  适配器模式主要包含以下三种角色:

  • Target目标角色。该角色定义将其他类或接口转换成何种接口,也就是我们期望的接口。
  • Adaptee源角色。该角色为被改造对象,即需要被转换成特定接口的类。
  • Adaptor适配器角色。适配器模式的核心角色,适配器类的职责非常简单:通过集成或者类关联的方法,把源角色转换成目标角色。
    适配器模式的通用代码如下:
//目标角色
public interface Target{
    //目标角色的方法
    public void request();
}

public class ConcreteTarget implements Target{

    @Override
    public void request() {
        System.out.println("Target request...");
    }
    
}

//源角色
public class Adaptee{
    //原有的业务逻辑
    public void doSomething(){
        System.out.println("Adaptee do something...");
    }
}

//适配器角色
public class Adapter extends Adaptee implements Target{

    @Override
    public void request() {
        super.doSomething();
        System.out.println("then do Target request...");
    }

}

//客户端角色
public class AdapterClient{
    public static void main(String[] args) {
        //原有业务逻辑
        Target target1 = new ConcreteTarget();
        target1.request();
        System.out.println("---------------");
        Target target2 = new Adapter();
        target2.request();
    }
}

该通用代码的运行结果如下:

Target request...
---------------
Adaptee do something...
then do Target request...

适配器模式的应用

适配器模式的优点

  • 适配器模式可以让两个没有关系的类运行在一起,只要适配器这个角色能够搞定他们即可。
  • 增加了类的透明性。高层模块只需要访问Target目标角色的接口,而不用关心被委托的源角色是如何具体实现的。
  • 提高了类的复用度。
  • 灵活性非常好。

适配器模式的适用场景

适配器模式的应用场景基本上为:有目的地去修改一个已经存在的接口。

适配器模式的注意事项

适配器模式最好在详细设计阶段不要考虑它,它并不是为了解决一个还在设计阶段的问题,只有当系统扩展了,不符合原有设计的情况下,才考虑使用适配器模式减少代码修改带来的风险。

《注》以上内容总结自秦小波-《设计模式之禅》,仅为个人学习笔记。

相关文章

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

    前言:对于设计模式基础概念可以去看[简说设计模式之设计模式概述] 一、什么是适配器模式 适配器模式(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/wfhafxtx.html