适配器模式(Adapter Pattern)

【DesignMode】适配器模式(adapter pattern) 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用了。适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可 阅读详情

一、简述

适配器模式指将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。比如说电脑一个显示屏不够用,再加一个。新加的显示屏接头不能和电脑适配,需要转换器接入。这就是适配器模式的一个体现。

适配器模式在 Java 中十分常用。这种模式适用于以下场景:想使用一个已存在的类,但是该类不符合接口需求;或者需要创建一个可重用的类,适配没有提供合适接口的其它类。如:

  1. java.io.InputStreamReader(InputStream) (返回一个Reader)
  2. java.io.OutputStreamWriter(OutputStream) (返回一个Writer)

适配器模式常见的有三种:

1️⃣类适配器模式
️2️⃣对象适配器模式
3️⃣接口适配器模式

这三种的思想都是一样的,只不过要适配的内容不一样而已。

二、类适配器模式

1️⃣Adapter 源角色
想把谁转换成目标角色,这个“谁”就是源角色,它是已经存在的、运行良好的类或对象,经过适配器角色的包装,它会成为一个崭新、靓丽的角色。

️2️⃣Target 目标角色
该角色定义把其他类转换为何种接口,也就是期望的接口。

3️⃣Adapter 适配器角色
适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是需要新建立的,它的职责非常简单:把源角色转换为目标角色,怎么转换?通过继承或是类关联的方式。

三、适配器模式的特点

1️⃣更好的复用性
系统需要使用现有的类,因此类的接口不符合系统的需要。那么通过适配器模式就可以让这些功能得到更好的复用。
2️⃣更好的拓展性
在实现适配器功能的时候,可以调用自己开发的功能,从而自然的拓展系统的功能。
3️⃣有动机修改一个已经投产中的接口时,适配器模式可能是最适合的模式。比如系统扩展了,需要使用一个已有或新建立的类,但这个类又不符合系统的接口,怎么办?使用适配器模式。
4️⃣详细设计阶段不要考虑使用适配器模式,使用主要场景为扩展应用中。
5️⃣适配器模式的缺点
过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部都被适配成了B接口的实现。一个系统如果太多的出现这种情况,无异于异常灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。

四、对象适配器和类适配器的区别

类适配器是类间继承,对象适配器是对象的合成关系,也可以说是类的关联关系,这是两者的根本区别。实际项目中对象适配器使用到的场景相对比较多。

FactoryPatternDemo Factory Pattern 立即下载

相关推荐

别再为CAD和GIS数据对不上而头疼了!一份完整的ArcGIS for AutoCAD坐标系定义与数据套合指南

本文详细介绍了如何通过ArcGIS for AutoCAD插件解决CAD与GIS数据坐标系不匹配的问题,实现数据的精准套合。文章从坐标系冲突分析、插件核心功能解析到五步标准化工作流,提供了完整的解决方案,帮助工程师和设计师提升跨平台协作效率。

weixin_42531886的博客 216

Java设计模式—适配器模式(Adapter Pattern)

适配器模式(Adapter Pattern)是一种结构型设计模式;用于将一个类的接口转换成另一个接口,从而满足客户端对接口的需求;在适配器模式中,适配器充当一个中间层,通过实现目标接口并持有原始类的实例来实现对原始类的封装和转换。客户端只需要调用目标接口中定义的方法即可完成对原始类的调用。适配器模式在Java中广泛应用于各种场景,例如,将旧版API适配到新版API、将不同的数据格式适配到统一的数据格式等。所以,适配器模式是个非常非常重要的,是个非常强的设计模式!

是个非常热爱生活、乐观、奋斗、努力的逗比青年 4067

【无标题】EXCEL实现刷题

运用Excel开发的刷题工具,具有普遍实用性,可将WORD的试题自动导入并实现刷题。

weixin_44081794的博客 2971

适配器模式(Adapter Pattern)

适配器模式也称为包装器(Wrapper)模式。适配器模式(AdapterPattern):将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。它既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式的定义中所提及的接口是指广义的接口,它可以表示成一个方法或者方法的集合。将目标类和适配者类解耦增加了类的透明性和复用性,提高了适配者的复用性灵活性和扩展性非常好,更换(增加)适配器,符合开闭原则。

Gefangenes的博客 156

【Ultrascale+ MPSOC学习记录】10、PS端以太网使用lwip

还是参考ALINX教程,学习PS端以太网如何使用,从教程中可以看到,开发板使用了一个xilinx默认不支持的phy JL2121,所以需要修改lwip的库源码。

ryo891012的博客 880

KEGG数据库与KAAS工具:基因功能注释的实用指南

本文提供了使用KEGG数据库与KAAS工具进行基因功能注释的完整实用指南。详细阐述了如何从准备基因或蛋白序列开始,通过KAAS服务器获取KEGG Orthology(KO)编号,并解读注释结果。文章进一步介绍了如何利用KOBAS工具进行通路富集分析,将定性观察转化为定量洞察,并分享了提高注释准确率、处理大数据集及使用API等避坑技巧与高阶方法,为基因组学、转录组学研究者奠定坚实的数据分析基础。

weixin_29292535的博客 390

适配器模式(Adapter Pattern)详解

适配器模式是一种结构型设计模式,它允许不兼容的接口一起工作。适配器模式通过将一个类的接口转换成客户端期望的另一个接口,使得原本不兼容的类能够协同工作。就像现实生活中的电源适配器,它可以使得不同国家的电源插头能够在不同规格的插座上使用。在软件设计中,适配器模式起着类似的作用,帮助不同接口的对象能够相互协作。适配器模式是一种非常实用的设计模式,它允许不兼容的接口一起工作,提高了类的复用性和系统的灵活性。适配器模式主要分为类适配器和对象适配器两种类型,在Java中由于不支持多继承,对象适配器使用更为广泛。

yk_dflkg的博客 2373

无需云服务器:飞牛云NAS+Docker搭建本地WordPress站点全球访问

在数字化浪潮中,网站搭建已成为个人和企业在推广自身品牌与业务的首要选择。飞牛云新推出的fnOS,这款集多功能于一身的nas系统,以其卓越的性能和灵活性,成为理想的本地网站部署平台。本文将带你一探如何在飞牛云NAS上通过Docker部署WordPress,并利用cpolar实现全球访问。

LT15171009269的博客 6528

【设计模式】结构型模式-适配器模式(Adapter Pattern)

适配器模式(Adapter Pattern)是一种结构型设计模式,其核心目标是通过一个中间层(适配器)将不兼容的接口转换为客户端期望的接口,使原本无法协同工作的类能够协同。

weixin_43510208的博客 1046

从SolidWorks到URDF:插件使用、关节配置与PyBullet仿真避坑指南

本文提供了一份从SolidWorks导出URDF模型并导入PyBullet进行仿真的完整实战指南。详细讲解了SolidWorks插件的正确安装与配置、关节类型的选择与坐标系对齐的核心技巧,并针对PyBullet仿真中常见的模型散架、路径错误、物理属性异常等问题提供了深度避坑解决方案,帮助机器人开发者高效完成从设计到仿真的全流程。

weixin_29081101的博客 542

会计引擎:交易与核算分离的前世今生

一、为什么需要会计引擎 金融产品的设计,一如一块硬币需要兼顾两面:一面是为客户提供好的金融服务,满足客户支付结算、借贷、资产保值增值等方面的需求,并在这个过程中,以数字化的方式做好客户资产的登记,登记的载体,则是“分户”或“台账”,如客户存款户,是一种典型的分户--资金的增减变化都在一个账户中进行体现,而客户购买的银行理财,因为收益率、期限、投资标的不同,每一笔持有就形成一行记录,即为“台账”--这当然是不严谨但相对形象的表述。但是,“分户”和“台账”并没有必然的区别,以贷款为例,一些银行仍然存在所谓“

银行信息系统应用架构详解 983

C++设计模式——适配器模式(Adapter Pattern)

C++设计模式——适配器模式(Adapter Pattern) 微信公众号:幼儿园的学霸 目录 文章目录C++设计模式——适配器模式(Adapter Pattern)目录定义定义作用/解决的问题适配器模式中的角色代码示例总结优缺点适用场景参考资料 定义 定义 Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn’t ot

leonardohaig的博客 1547

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

适配器模式(Adapter Pattern) — Python实现

适配器模式(Adapter Pattern) — Python实现 模式动机 在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。 通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现有类中方法名与目标类中定义的方法名不一致等原因所导致的。 在这种情况下,现有的接口需要转化为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能,适配器模式可以完

qq_33511971的博客 512

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

适配器模式 Adapter Pattern

适配器模式(也称为包装器「」,与装饰器模式「」共享的另一种命名),它允许将现有类的接口用作另一个接口。它通常用于使现有类与其他类协同工作,而无需修改其源代码。适配器模式描述了如何解决重复出现的「recurring」设计问题,以设计灵活和可重用的面向对象软件,即更容易实现、更改、测试和重用的对象。

DachuiLi的博客 917

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python设计模式之适配器模式(Adapter Pattern)

适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 这里performanceLogger 需要根据不同的需求调用ClassificationEvaluator,SegmentationEvaluator,VOCEvaluator或者COCOEvaluator类的实现 其实也可以使用工厂模式来实现。 代码来自:https://github.com/shanglianlm0525

mingo_敏 1061

adapter pattern java_适配器模式 Adapter Pattern

新旧两个接口,功能类似,旧的接口已渐渐不再使用,如何让旧接口调整为新接口的样式呢(方便其他程序调用)?写一个衔接作用的adapter即可。如下:Duck和Turkey是两个接口,他们的功能类似,仅仅是方法的名称不同。如何把Turkey接口调整成Duck,以方便调用呢?package javaapplication31;public class Main {public static void ma...

weixin_31642161的博客 151

适配器模式 Adapter Pattern

适配器模式  Adapter Pattern

whf96998的专栏 188

Adapter Pattern 适配器模式

Adapter Pattern: converts the interface of a class into another interface the clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces. Use of obj

Geurney的专栏 617

适配器模式【Adapter Pattern】

好,请安静,后排聊天的同学别吵醒前排睡觉的同学了,大家要相互理解嘛。今天讲适配器模式,这个模式也很简单,你笔记本上的那个拖在外面的黑盒子就是个适配器,一般你在中国能用,在日本也能用,虽然两个国家的的电源电压不同,中国是 220V,日本是 110V,但是这个适配器能够把这些不同的电压转换为你需要的 36V 电压,保证你的笔记本能够正常运行,那我们在设计模式中引入这个适配器模式是不是也是这个意思呢?是

admin1973的专栏 521

适配器模式(Adapter Pattern) C++

适配器模式让那些接口不兼容的类可以一起工作,它通过包装一个已有的类提供一个新的接口,从而使原本由于接口不兼容而不能一起工作的类可以一起工作。在这个对象适配器中,AlienObjectAdapter持有一个指向NewEnemy接口(即Alien类实例)的指针,并通过这个引用来调用具体的方法,将NewEnemy接口的方法适配到OldEnemy接口期望的方法上。对象适配器使用组合,包含一个被适配者的引用,这表示适配器和被适配者之间是“有一个”(has-a)的关系。类适配器可以重写被适配者的行为。

yaoyaohyl的博客 1240
上一篇: 浅克隆和深克隆
下一篇: MyBatis 配置 resultType
JFS_Study
博客等级 码龄6年 363粉丝 359原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值