简单使用适配器模式

设计模式(二) 三种适配器模式 总结和使用场景 转载请标明出处: http://blog.youkuaiyun.com/zxt0601/article/details/52703280本文出自:【张旭童的博客】一 概述定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。属于结构型模式主要分为三类:类适配器模式、对象的适配器模式、接口的适配器 阅读详情

简用适配器模式

适配器模式简介

适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。

在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。

根据适配器类与适配者类的关系不同,适配器模式可分为 对象适配器和类适配器 两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系。

适配器模式涉及的类

Target(目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。

Adapter(适配器类):适配器可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配,适配器类是适配器模式的核心,在对象适配器中,它通过继承Target并关联一个Adaptee对象使二者产生联系。

Adaptee(适配者类):适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类一般是一个具体类,包含了客户希望使用的业务方法,在某些情况下可能没有适配者类的源代码。

模拟一个适配器的实现
源方法
// 已经有的源方法
public class Adaptee {
    public void getInfo(String name) {
        System.out.println("===========源接口的实现类的方法调用了"+name);
    }
}
需要的目标方法
// 客户需要的接口/方法
public interface Target {
    void requestInfo(String name);
}
类适配器实现
/**
 * 类适配器,继承源方法类,实现目标接口
 * 适配器与适配者之间是继承(或实现)关系
 */
public class TargetAdapterOne extends Adaptee implements Target {
    @Override
    public void requestInfo(String name) {
        //在目标方法中调用源方法
        super.getInfo(name);
    }
    
    //测试
    public static void main(String[] args) {
        //创建适配器的对象
        Target target = new TargetAdapterOne();
        target.requestInfo("one======one");
    }
}
对象适配器实现
/**
 * 对象适配器,实现目标接口.将源方法类作为对象传递进来
 * 适配器与适配者之间是关联关系
 */
public class TargetAdapterTwo implements Target{
    private Adaptee adaptee = new Adaptee();

    @Override
    public void requestInfo(String name) {
        adaptee.getInfo(name);
    }

    //测试
    public static void main(String[] args) {
        //创建适配器的对象
        Target target = new TargetAdapterTwo();
        target.requestInfo("two======two");
    }
}
深入了解 Google Gemini:主要功能是什么以及我们为什么要使用它? Google Gemini开启AI新纪元,以其独特的多模式功能重塑技术未来。 阅读详情

相关推荐

山东大学软件测试实验2——系统功能测试

​ 给出一个被测试的 Web 应用系统(SUT)。http://211.87.232.162:8080/注:友情链接不用延伸测试。针对被测试的 Web 应用系统进行功能测试,发现其存在的缺陷。 ​

m0_74033391的博客 2409

java简单适配器的使用

Java与模式:适配器模式 目的: 将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

成埃的博客 1010

关于发那科机器人抓手及物料搬运阀配置

4:确保抓手阀岛和输入模块配网连接正常,MENU—SETUP—MH Valves—Details,详细界面进入到左上图所示,根据每组阀分配夹钳数量并应用。3:设置搬运有效,抓手是否带点焊可以自行选择,要设置应用选择,物料搬用工具数量,工具上阀岛的数量,夹钳存在数量,工具存在数量,以及真空吸盘,冷启动。​2:MENU—应用选择,将搬运置为有效,剩余其他项根据机器人实际用途进行选择。5:设置夹钳数量,检查打开夹钳,检查闭合夹钳,延迟时间要给选择配置应用。

dxs93的博客 4772

适配器模式(三种)简单使用

前言 适配器模式是将一个类的接口转换成客户希望的另外一个接口,身边很多东西都是适用于适配器模式的,笔记本的电源(也叫电源适配器),是将220V的交流电转换为笔记本电脑所需要的12V(电流先忽略),笔记本电脑的各种接口,VGA转Hdml,USB-TypeA 转 USB-TypeC,亦或者你在香港买了个手机,充电器是你生活中没见过的三孔插座通过一个转换头转换为国内常用的插头,很多例子都能很形象的解释

Must_Do的博客 3万+

2025年普通人转向人工智能运维(AIOps)学习建议(附最新技术实践与资源)

AIOps不仅是技术的叠加,更是运维流程的重构。建议通过“学习-实践-反馈”循环,逐步从工具使用者成长为解决方案设计者。如需完整资源链接,可访问上述推荐的优快云博客及GitHub仓库。

资深全栈架构师,乐于在 优快云 分享技术见解,与大家携手共进,共攀技术巅峰! 3096

手把手教你用C语言实现GNSS卫星方位角计算(附RTKLIB风格代码解析)

本文详细介绍了如何使用C语言实现GNSS卫星方位角计算,包括从地固坐标系到站心坐标系的转换链条。通过RTKLIB风格的代码解析,展示了XYZ到ENU坐标转换的核心原理和C语言实现框架,帮助开发者掌握卫星方位角和高度角的计算技巧,适用于GNSS观测数据质量分析和精密定位算法开发。

weixin_30699915的博客 364

SimpleAdapter(简单适配器)

SimpleAdapter(简单适配器):这个适配器不要被名字迷惑,看是简单,但功能强大 <?xml version="1.0" encoding="utf-8"?> <LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="mat...

sunshinedark的博客 2万+

UG二次开发GRIP创建drill工序

UG二次开发GRIP创建drill工序

qq285503851的博客 1696

适配器模式的简单使用

适配器模式一般是在某个栏目下有很多选项,而且业务逻辑比较复杂,这时候,适配器就是一种比较友好的代码设计。 本质上来说,适配器模式是if、else的一种变形,大致形式如下: Target target = new Adapter(); target.adapt(); /** 其中数据结构 */ Adapter 是 Target 的实现(或子类)Adapter 引用 Adaptee(被适配者)

rain_man_happy的专栏 1073

Spring 核心技术解析【纯干货版】- I:Spring 基础模块 Spring-Core 模块精讲

Spring-Core 模块,是 Spring 核心容器模块之一。虽然 “Core” 本身就有 “核心的,重要的部分” 的含义,但是它并非是实现(常被我们说为 Spring 核心机制)IOC / AOP 的模块。Spring 中的 IOC 机制,主要来自于 BeanFactory 容器和 ApplicationContext 容器,这二者分别由同为核心容器模块的 Spring-Bean 模块 和 Spring-Context 模块所提供。

栗筝i的博客 2524

YOLOv10改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 103

写一个C++的适配器模式,要求尽量简单,但是能体现适配器模式的所有特点,不要使用智能指针

此实现展示了适配器模式如何在不修改已有代码的情况下,通过添加中间层使不兼容的接口协同工作。// 倒序字符串"my Joy Me!// 对被适配者的引用。需要创建可复用的类,与未知或未来可能出现的不兼容类协同工作。• 不修改Adaptee的情况下复用其功能。• 对象适配器中,适配器负责删除被适配对象。// 被适配者(已有但接口不兼容的类)// 目标接口(客户端期望的接口)• 类适配器不需要额外管理被适配者。// 类适配器(使用多重继承)

slty_123的博客 600

【测开求职】面试题:JAVA 吐血整理

本篇文章包含本次测开工程师秋招过程中遇到的所有JAVA面试题,全文两万字,亲测应对各个大厂的面试毫无压力👉

vector的博客 1211

适配器模式(Adapter)

1.作用 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 Adapter模式会对现有的类进行适配,生成新的类。通过该模式可以很方便地创建我们需要的方法群。 2.类图 1.类适配器模式的类图(使用继承) 2.对象适配器模式类图(使用委派) Target: 目标类,定义用户所需要的方法。 Adaptee: 被适配器者类。需要使用适配...

qq_29550537的博客 416

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

结构型模式-适配器模式

适配器模式是一种结构型模式,它通过将一个类的接口转换为符合客户端期望的接口来解决类之间接口不兼容的问题。适配器模式的主要角色有:目标接口(Target):客户端期望的接口,适配器将源接口转换为目标接口。源接口(Adaptee):需要被适配的接口。适配器(Adapter):实现目标接口,并包含一个源接口的实例,通过调用源接口的方法来实现目标接口。适配器模式的优点包括:将不兼容的接口转换为兼容的接口,使得原本无法工作的类可以协同工作。提高代码的复用性,适配器可以重复使用。

Flying_Fish_roe的博客 712

Statistics and Machine Learning Toolbox

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

适配器模式的用例

适配器模式:适配器模式是将接口改造成用户希望的接口,适配器让原本和接口不兼容的类能和接口一起工作。 下面是一个工作用到的适配器扩展模式 如类图所示,我们拥有一个目标接口Target,包含一个方法doBusiness,一个需要被适配的类Adaptee,包含三个方法,还有我们的核心适配器类Adapter,这是一个抽象类。 再看两个实现类,一个是简单的实体类,直接实现了Target的实体类

hsgao_water的博客 637

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

简单的适配器模式

接口   大家知道,在java中只允许单继承,但是在实际问题中往往都需要多继承,java引入了接口这一概念。(一个类可以实现多个接口)   由于接口中都是抽象方法,那么我们在实现它的时候就必须全部覆写这些方法。假如我有一个类,这个类只想覆写一部份方法怎么办?   在接口与这个类中间可以加一个抽象类: 抽象类去覆写接口中的全部方法,而那个类去继承这个抽象类,根据需要覆写抽象类中的方法。

chenminghe271的专栏 362

设计模式之适配器模式

1、适配器模式(Apater)将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2、适配器模式主要解决什么问题呢? 答:简单地说,就是需要的东西就在面前,但却不能使用,而短时间又无法改造它,于是我们就想办法适配它。 3、系统的数据和行为都正确,但接口不符合时,我们应该考虑用适配器,目的是使控制范围之外的一个原

Al_xin的专栏 633

组合模式和适配器模式的区别

特征组合模式适配器模式目标统一处理单个对象和对象的组合(树形结构)。将不兼容的接口适配成客户端所期望的接口。主要用途处理部分和整体的关系(树形结构)。解决不同接口不兼容的问题。结构Component接口,Leaf(叶子节点),Composite(树枝节点)。Target(目标接口),Adapter(适配器),Adaptee(被适配类)。应用场景组织架构、文件系统、UI组件等树形结构。接口不兼容时,需转换接口以便合作。设计目标。

qq_43287763的博客 1484

适配器模式

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 下面是Adapter结构图:   下面演示一个简单的Demo: Target类: public class Target { public void request() { System.out.println("一般"

ray8567548的专栏 543

Java设计模式 适配器模式

适配器模式 工作中的场景 经常用来做旧系统改造和升级 如果我们的系统开发之后再也不需要维护,那么很多模式都是没必要 的,但是不幸的是,事实却是维护一个系统的代价往往是开发一个系 统的数倍。 我们学习中见过的场景 java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) ...

qq_42920045的博客 300

《适配器模式》

所谓适配器模式,就是为了解决或者叫融合系统之间的差异,通过提供一个类,来融合这种差异。 这让我想起来读《UNIX 编程艺术》里一个名词  就是胶合层。   胶合层也算是一种适配上层鱼下层之间的差异和出现的一种处理方式。   这个是解决系统差异的一个具体表现,   下面上图吧     代码片段   [cpp] view

wzj_05的专栏 479

适配器模式dapter

    适配器模式(Adapter):将一个类的接口转换成客户希望的另一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作  下面是类结构图:下面是源代码:ITarget.javapackage com.china_chenglong; public interface ITarget {void Say();void

china_chenglong的专栏 565

Unity3d学习之路-简单打飞碟(适配器模式)

简单打飞碟(适配器模式) 简单打飞碟(适配器模式) 游戏要求 适配器模式 游戏实现 适配器实现 物理动作实现 场景控制器实现 飞碟prefab实现 游戏实现结果 小结 游戏要求 按adapter模式设计图修改之前的简单打飞碟游戏 使它同时支持物理运动与运动学(变换)运动 适配器模式 适配器模式是将某个类的接口转换成我们所期望的另一个接口,将两个不兼...

C486C的博客 841
上一篇: 将数据库字段转换为excel表格
下一篇: 与线程相关的知识点
黑白格tt
博客等级 码龄8年 35粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值