适配器模式

适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。

适配器模式的两种形式

  • 类适配器采用 “多继承” 的实现发式,带来了不良的高耦合,所以一般不推荐使用。
  • 对象适配器采用 “对象组合” 的方式,更符合松耦合精神。

在以下各种情况下使用适配器模式

  • 系统需要使用现有的类,而此类的接口不符合 系统的需要。
  • 想要建立一个有以重复使用的类,该类可能与其它不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
  • (对对象适配器而言) 在设计里,你想使用一些已经存在的子类,但是不可能对每一个子类都进行适配。对象适配器可以适配它你的父类接口 (使用的扩展)

本质:转换匹配,复用功能

优点:

  • 更好的复用性
  • 更好的可扩展性
    在实现适配器功能的时候, 可以调用自己开发的功能,从而自然地扩展系统的功能

缺点:

  • 过多地使用适配器,会让系统非常凌乱,不容易整体进行把握。

目标(Target) 角色:

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

源(Adaptee)角色:需要适配的类。

适配器(Adapter) 角色:

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

对象适配器:


客户所期待的抽象类(接口):

public abstract class Target {public abstract void Request();
}

需要适配的类:

public class Adaptee {public void SpecificRequest() {System.out.println("特殊请求");}
}
public class Adapter extends Target {private Adaptee adaptee=new Adaptee();@Overridepublic void Request() {adaptee.SpecificRequest();}
}
public class Program {public static void main(String[] args) {Target target=new Adapter();target.Request();}
}

适配器模式(对象适配器)相关推荐

  1. 【设计模式】适配器模式 ( 类适配器代码模板 | 对象适配器代码模板 | 适配器模式示例 )

    文章目录 I . 适配器模式 ( 类适配器 ) 代码模板 II . 适配器模式 ( 对象适配器 ) 代码模板 III . 适配器模式 代码示例 I . 适配器模式 ( 类适配器 ) 代码模板 1 . ...

  2. 【设计模式】适配器模式 ( 概念 | 适用场景 | 优缺点 | 外观模式对比 | 适配器模式相关角色 | 类适配器 | 对象适配器 | 实现流程 )

    文章目录 I . 适配器模式概念 II . 适配器模式 适用场景 III . 适配器模式 优缺点 IV . 适配器模式 与 外观模式对比 V . 适配器模式 相关角色 ( 重点 ) VI . 适配器模 ...

  3. C++设计模式——适配器模式(对象适配器、类适配器)

    http://blog.jobbole.com/109381/?winzoom=1 前言 现在的笔记本都只存在USB接口,用来口,电脑上存在的是USB接口,两者如何通信呢?可以使用USB转串口线连接电 ...

  4. 适配器模式(类适配器,对象适配器,接口适配器)

    现实生活中的适配器例子 泰国插座用的是两孔的(欧标),可以买个多功能转换插头(适配器) ,这样就可以使用了. 基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一 ...

  5. 适配器模式之类适配器与对象适配器的区别及代码实现

    什么是适配器模式? 适配器模式(Adapter):直观理解就是使原来不能一起相互工作(接口不兼容)的两个功能通过Adapter兼容在一起. 类适配器和对象适配器 类适配器 Adapter 类继承Ada ...

  6. 设计模式--适配器模式 (类适配器和对象适配器)

    适配器模式很常用的:商城中的例子比如快递发货,那么多种快递公司:可能每个快递公司的接口对接都不一样都要适配:比如各种框架中的类似以下思想的代码,都是为了适配. public function beha ...

  7. 设计模式适配器模式_适配器设计模式示例

    设计模式适配器模式 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要 ...

  8. 适配器模式(类适配器)

    java设计模式大体分为23种设计模式,直接通过例子学习设计模式,更易于理解和思考其中的原理和作用,以下给出 适配器模式 的第一种(一个有三种)的demo,叫做类适配器模式: MainRun.java ...

  9. Java 设计模式 Adapter 对象适配器 模式

    Java 设计模式 Adapter 对象适配器 模式 Adapter模式用于现有的程序无法直接使用,需要做适当的变换之后才能使用的情况. 涉及到的角色 Target对象:定义所需的方法. Client ...

最新文章

  1. Multi Dimension 数据库设计
  2. 使用sklearn来处理类别数据
  3. win64环境下的一些配置
  4. NIO之ByteBuffer_NIO之网络IO_与ChannelNetty初窥门径
  5. erlang环境变量——HOME
  6. 4 谐波_谐波的基础知识
  7. AngularJS-源码阅读(八.二)
  8. Flash Builder4.7安装破解
  9. CenterNet原理详解
  10. 为什么要在主线程更新UI?
  11. go语言环境搭建及vim高亮设置
  12. 软件介绍:搜索工具 Listary
  13. GIT 密钥生成工具puttygen使用技巧
  14. 黑客是如何入侵服务器的
  15. 零基础学前端系列教程 | 和前端谈恋爱的第004天——打扮漂亮
  16. 时分秒倒计时的js实现
  17. markman psd
  18. itween的抛物线线性移动
  19. L2-048 寻宝图
  20. linux 按键检测 防抖,GPIO输入——按键检测

热门文章

  1. Python写个小游戏:速算24点(上)
  2. 通过VBA宏合并Excel工作表
  3. 网络营销好学吗?自学和培训该怎么选?
  4. 程序员怎么提高英语阅读水平?
  5. Android -- 屏幕适配之dimens适配
  6. java jar包资源文件_深入jar包:从jar包中读取资源文件
  7. Godaddy子域名转向外部IP地址设置
  8. Linux部署nacos启动提示No DataSource set处理办法
  9. Cy5/FITC/CY3/CY7-Nab-PTX ,荧光标记白蛋白结合型紫杉醇
  10. CIO40: IT男之日常工作(点线面体)