设计模式(七)——适配器模式

  • 概述
  • 类适配器模式
  • 对象适配器模式
  • 应用场景

概述

我们在给手机充电的时候,一般会有一个数据线和充电头,然后插在插排上。我们是没有办法将数据线直接插在插排上的,所以我们需要把充电头(有USB的接口和与插排对应的接口)作为转换器,才可以适配插排的插口,并转换电压,给手机充电。生活中还有其他的例子,比如读卡器,欧洲插座转换器等等。

适配器模式就是将一个类的接口转换成客户希望的另一个接口,使得原本接口不兼容而不能一起工作的类可以一起工作。

适配器模式分为类适配器模式和对象适配器模式,前者类之间的耦合度比较高,且要求程序员了解现有组件库中相关组件的内部结构,所以应用相对较少些。

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

  • 目标接口:当前业务系统所期待的接口,可以使抽象类或者接口。
  • 适配者类:它是被访问和适配的现存组件库中的组件接口。
  • 适配器类:它是一个转换器,通过继承或引用是陪着对象,把适配者接口转换成目标接口,让客户按照目标接口的格式来访问适配者。

类适配器模式

实现方式:定义一个适配类来实现当前系统的业务接口,同时又继承现有组件库中已经存

设计模式(七)——适配器模式相关推荐

  1. Java进阶专题(八) 设计模式之适配器模式、装饰者模式、观察者模式

    本章节将介绍:三个设计模式,适配器模式.装饰者模式和观察者模式.通过学习适配器模式,可以优雅的解决代码功能的兼容问题.另外有重构需求的人群一定需要掌握装饰者模式.本章节参考资料书籍<Spring ...

  2. C#设计模式(7)——适配器模式(Adapter Pattern)

    一.引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象.那么如果将"将现存的对象" ...

  3. 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabcd 介绍 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本 ...

  4. 跟JBPM学设计模式之适配器模式

    跟JBPM学设计模式之适配器模式 模式简介 适配器模式(Adapter),将一个类的接口转换成客户希望的另一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 说起适配器模式 ...

  5. python适配器模式角色_Python设计模式之适配器模式原理与用法详解

    本文实例讲述了Python设计模式之适配器模式原理与用法.分享给大家供大家参考,具体如下: 适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口. 下面是一个适配 ...

  6. 【设计模式】—— 适配器模式Adapter

    模式意图 如果已经有了一种类,而需要调用的接口却并不能通过这个类实现.因此,把这个现有的类,经过适配,转换成支持接口的类. 换句话说,就是把一种现有的接口编程另一种可用的接口. 模式结构 [类的适配器 ...

  7. 设计模式适配器模式_21世纪的设计模式:适配器模式

    设计模式适配器模式 这是我的演讲的第三部分," 21世纪的设计模式" . 适配器模式桥接世界. 在一个世界中,我们有一个概念的界面. 在另一个世界,我们有不同的界面. 这两个接口有 ...

  8. Java面试题:单例设计模式、适配器模式的不同方式

    QUESTION:单例设计模式.适配器模式的不同方式? ANSWER: 1.单例设计模式,适配器设计模式     单利设计模式:             在java中,单例模式是指为了保证类在内存中只 ...

  9. [学习笔记]设计模式[6]-{适配器模式外观模式}

    设计原则 最少知识原则:只和你的密友谈话 这个原则的意思是,在系统设计的过程中,不要让太多的类耦合在一起,免得对系统一部分的修改会影响到其他部分.在设计系统之前,应该首先注意对象与对象之间的交互关系, ...

  10. 适配器模式_21世纪的设计模式:适配器模式

    适配器模式 这是我的演讲的第三部分," 21世纪的设计模式" . 适配器模式桥接世界. 在一个世界中,我们有一个概念的界面: 在另一个世界中,我们有不同的界面. 这两个接口有不同的 ...

最新文章

  1. jsp connection DB
  2. matlab 图像处理函数(第八章) 图像的增强
  3. 【Python】Smtplib正确模拟发送QQ邮件
  4. 四窗口卖票 自己的票
  5. android studio moudel,Android Studio将module变为library
  6. ubuntu 18.04 conda 环境中编译 pytorch
  7. MSP430学习小结3-MSP430基本时钟模块
  8. linux ntfs 转换 无损,无损数据下NTFS转换FAT32分区
  9. 一套新能源汽车动力电池热管理热仿真攻略
  10. 【JZOJ A组】东风谷早苗
  11. The Boys x PUBGMOBILE 联动火热来袭!来看最新游戏海报
  12. mysql latch_MySQL中的latch(闩锁)详解——易产生的问题以及原因分析
  13. element UI 学习
  14. windows7 VCP安装失败的解决办法
  15. 2022-2028年全球植入前基因检测收入年复合增长率CAGR为 5.6%
  16. U盘中的数据被格式化了怎么恢复?原来数据恢复也很简单
  17. 视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等等.
  18. 自满型性格分析,如何改变自满型性格?
  19. android 伪装 wifi,移动数据伪装wifi软件xposed手机版-手机移动数据伪装wifi模块xposedv1.4最新版_新绿资源网...
  20. 驱动注册的两种方式(一)——file_operations结构体

热门文章

  1. Qt 编程 —— 字体对话框(QFontDialog)的使用 【学习笔记】
  2. 【雷达干扰】基于matlab速度聚类欺骗式干扰仿真【含Matlab源码 2221期】
  3. Java入门之顺序、选择、循环结构
  4. java异常类_java中常见的异常类
  5. ad19怎么手动布线_AD19如何使用强大的自动布线功能
  6. Redis_17_Redis服务器中的数据库(五种基本类型底层存放)
  7. 【自然语言处理】【多模态】多模态综述:视觉语言预训练模型
  8. 判断网站被降权的方法
  9. 人脑计算机手机在线观看,《人脑计算机》
  10. ArcGIS中实现空间内插