Java设计模式 - 适配器模式

Java设计模式之<适配器模式>  java的设计模式可分为:创建型模式、结构性模式、行为型模式三类。适配器模式(Adapter Pattern)是一种 结构型设计模式,用于在两个不兼容的接口之间建立桥梁,使它们可以协同工作。它通常用于让已有的类与新接口兼容,而无需修改原有代码。实现方式分为对象适配器(基于组合)、类适配器(基于继承)、接口适配器(基于抽象类)三种。 阅读详情

目的

  • 担任两个不兼容的接口之间的桥梁,将类接口转换成客户希望的另一个接口

实现思想

  • 适配器内部通过继承、组合方式,将来自某接口的操作转换给另一个接口=

内部角色

  • Target:目标接口
  • Adaptee:被适配类,实现了客户希望的接口
  • Adapter:适配器,协调Target与Adaptee的请求转换

实现方式

类适配器、对象适配器

类适配器

  • 重点类:Adapter
    1. 通过继承Adaptee,拥有被适配类的功能
    2. 通过实现Target接口,拥有作为插口的能力
    3. 针对对Target接口的方法实现中,调用继承自Adaptee的功能,转换操作请求
  • 示例
// Target
interface IComputerNetwork {
    fun internet()
}

// Adaptee1
open class WangKa {
    fun wifiConnect() {
        System.out.println("Wifi 连接网络")
    }
}

// Adaptee2
open class WangXian {
    fun lineConnect() {
        System.out.println("有线 连接网络")
    }
}

// Adapter
class WangKaUsbAdapter : WangKa(), IComputerNetwork {
    override fun internet() {
        super.wifiConnect()
    }
}

// Adapter
class WangXianUsbAdapter : WangXian(), IComputerNetwork {
    override fun internet() {
        super.lineConnect()
    }
}

// User
class Computer {
    // 主机的上网功能
    fun internet(adapter: IComputerNetwork) {
        // 通过适配器,适配到真正提供上网的类
        adapter.internet()
    }

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            val computer = Computer()
            computer.internet(WangKaUsbAdapter())// 通过网卡联网,联网任务交给最终的网卡
            computer.internet(WangXianUsbAdapter())// 通过网线联网,联网任务交给最终的网线
        }
    }
}

对象适配器

  • 重点类 :Adapter
    1. 通过构造器,传入一个Adaptee对象,以此拥有被适配类的功能
    2. 还是一样,通过实现Target拥有插口能力
    3. 在Target实现方法内,使用组合的Adaptee对象转换操作请求
  • 示例
// Target
interface IComputerNetwork {
    fun internet()
}

// Adaptee abstract
interface IInternet {
    fun connect()
}

// Adaptee1
open class WangKa : IInternet {
    override fun connect() {
        System.out.println("Wifi 连接网络")
    }
}

// Adaptee2
open class WangXian : IInternet {
    override fun connect() {
        System.out.println("有线 连接网络")
    }
}

// Adapter
class InternetAdapter(var adaptee: IInternet) : IComputerNetwork {
    override fun internet() {
        adaptee.connect()
    }
}

// User
class Computer {
    fun internet(adapter: IComputerNetwork) {
        adapter.internet()
    }

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            // 使用者用法不一样了
            val computer = Computer()
            val adaptee = WangKa()
            val adaptee2 = WangXian()
            val adapter = InternetAdapter(adaptee2)
            computer.internet(adapter)
        }
    }
}
【Java设计模式】Java设计模式之(十七)适配器模式(Adapter Pattern) 这种类型的设计模式属于结构型模式。 一、适配器模式介绍 1.1 含义 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通 阅读详情

相关推荐

【STM32项目】老人健康跌倒检测系统实现(附教程PCB资料)

功能概述 跌倒检测 倾倒告警,人体角度倾斜至阈值触发蜂鸣报警 异常运动,加速度超过正常行动阈值时触发报警 心率监测 实时检测心率数据 血氧监测 实时检测采集血氧 血压测量 血压在线测量 红外体温 非接触体温采集方案 接触式体温采集方案 实时定位 中科微GPSGT-U12双频GPS北斗 GLONASS IRNSS定位系统 NEMA数据解析 可扩展高精度定位方案厘米级 屏幕显示 数据采集显示 告警阈值设置 语音提示 1欢迎使用老人智慧监测系统

洋洋的博客 1万+

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

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

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

GNSS/INS松组合导航实战:如何用卡尔曼滤波提升定位精度(附MATLAB代码)

本文深入探讨了GNSS/INS松组合导航的工程实践,详细阐述了如何利用卡尔曼滤波算法融合卫星与惯性数据以提升定位精度。内容涵盖从仿真环境搭建、误差状态卡尔曼滤波器(ESKF)设计,到状态与观测方程实现、噪声参数调试及常见问题排查的全过程,并提供了可直接运行的MATLAB代码,为开发高精度、鲁棒的组合导航系统提供实战指南。

weixin_29057163的博客 165

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

适配器模式是一种解决。

空 1092

深入理解HanLP1.x,填平可能遇到的坑

提取指定数量的摘要。自定义词典为什么要单独领出来讲呢?因为在我们的业务开发中,可能分词的效果并不理想,需要定制自己的词库,索引更加常用。例如:小米su7特斯拉modelY比亚042025款6575767670908我们需要分出小米su72025款等词。我们分别看看用字典和不用字典的效果。

static_coder的博客 977

Ollama内网离线部署大模型实战:从模型文件到私有化服务

本文详细介绍了如何在内网离线环境下,利用Ollama部署私有化大模型服务。内容涵盖从获取GGUF格式模型文件、手动安装Ollama、编写核心Modelfile配置文件,到创建运行模型、性能调优及安全加固的全流程实战指南,旨在帮助企业安全、可控地构建内部AI能力。

weixin_29209805的博客 215

【设计模式】Java 设计模式之适配器模式(Adapter Pattern)

适配器模式是一种强大的设计模式,它允许我们将不兼容的接口转换为统一的接口,从而简化了系统的集成过程。然而,我们也需要注意到,适配器模式并不是万能的。通过创建适配器,我们可以将遗留系统的接口转换为现代系统所使用的接口,从而实现遗留系统与新系统的无缝集成。工厂模式可以根据输入的参数或配置,返回不同的适配器实例,这样客户端代码就不需要直接创建适配器对象,而是通过工厂来获取所需的适配器。例如,在处理不同格式的数据转换时,我们可以使用策略模式定义多种转换策略,然后在适配器中根据输入数据的格式选择合适的策略进行转换。

新手村长的专栏 2195

物流系统集成实战:从零开始用Java对接国际快递(DHL/FedEx/UPS)

本文详细介绍了如何使用Java技术栈对接DHL、FedEx和UPS三大国际快递巨头的API,构建高效、稳定的物流集成解决方案。内容涵盖认证机制、报文标准、多语言支持等关键点,并提供实战代码示例和最佳实践,帮助开发者快速实现国际快递系统集成。

efc1234567的博客 694

adapter pattern java_Java设计模式之适配器模式(Adapter Pattern)

Java设计模式之适配器模式(Adapter Pattern),适配器模式是Java中的结构性模式的一种,最近详细的比较安卓中的Listview和RecycleView的区别,有一点很明显,就是RecycleView中就根本没有添加header和footer的方法,像这种方法也是我们平时常用的,那么只能自己封装了,参考了Listview的做法发现里面用到了适配器的模式就静下心来好好研究了下适配器模...

weixin_39967120的博客 201

在 SAP S/4HANA Private Cloud 中把标准 CDS View 发布为 OData:可操作的四条路径与完整示例

在 ADT 中创建。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 726

STM32串口控制LED灯的亮灭

STM32中的串口控制LED灯的亮灭,分为两种方式,一种是直接发送数字0和1来控制灯的亮灭,另一种是通过发送字符串来控制。 我所使用的开发板主控芯片是STM32F401RET6,主频84MHz, 首先要进行串口的初始化: /* 函数功能:串口的初始化 函数名:Usart_Init 返回值:无 参数:u32 brr 备注: USART1_TXD->PA9 USART1_RXD->PA10 */ void Usart_Init(u32 brr) { float div; u16 div

博客 2万+

Java设计模式-适配器模式

适配器模式是一种结构型设计模式,它主要通过将一个类的接口转换成客户端所期望的另一个接口,来解决接口不兼容的问题。适配器模式一般包括三个角色:目标(Target)、适配器(Adapter)和被适配者(Adaptee)。其中,目标角色是客户端所期望的接口,适配器角色是将被适配者的接口转换成目标接口的类,被适配者角色是需要被适配的类。适配器模式与其他设计模式的区别在于,它主要是用于接口转换,而其他模式则主要用于解决其他问题,如工厂模式用于对象创建、单例模式用于对象的唯一性等等。

小薯条的博客 989

YOLO学习笔记 | YOLOv8与卡尔曼滤波实现目标跟踪与预测(附代码)

YOLOv8采用改进的CSPDarknet骨干网络和动态标签分配策略,提供高精度、实时的目标检测能力。使用IOU(交并比)或马氏距离作为代价矩阵,通过匈牙利算法匹配预测框与检测框,解决多目标ID分配问题。卡尔曼滤波通过状态方程和观测方程对目标运动建模,结合预测与观测数据优化状态估计。完整代码需结合具体场景调整参数,并补充匈牙利算法实现(可参考。匈牙利算法(Hungarian Algorithm)是解决。的高效方法,常用于目标跟踪中的。),作为跟踪的输入观测值。(将检测框与预测框匹配)。

尘世冰封的专栏 1250

【Java设计模式】适配器模式

文章目录概述适用场景优点缺点拓展适配器-相关设计模式演示 概述 定义:将一个类的接口转换成客户期望的另一个接口 使原本接口不兼容的类可以一起工作 类型:结构型 适用场景 ◆已经存在的类,它的方法和需求不匹配时(方法结果相同或相似) ◆不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案 优点 能提高类的透明性和复用,现有的类复用但不需要改变...

明月沉江春雾晓 1388

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

总结: 适配器模式是一种简单而实用的设计模式,它能够解决接口不匹配的问题,使得原本不兼容的类可以一起工作。但是,我们发现MP3音乐的播放接口与MP4音乐的播放接口不同。介绍: 适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。例如,一个类使用的是旧的接口,而我们又想要使用一个新的接口,但两者之间方法的名称和参数不同。在上面的示例中,我们成功地使用了适配器模式,通过适配器将MP3音乐播放器适配成了MP4音乐播放器的接口,实现了MP3和MP4音乐播放器之间的无缝协作。

weixin_38682092的博客 152

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【JAVA设计模式】之适配器模式(AdapterPattern)

使用场景 复用现有类的功能。 项目并非都是从零开始,而在我们编程过程中,也不是所有的功能都需要重新去写,复用现有类的功能是最直接有效的途径 版本升级与兼容性。 随着版本的迭代升级,旧有的一些功能渐渐无法满足需求,现实中又不能直接摒弃,使用Adapter模式可以轻松的来兼容维护新旧版本 图解适配器模式 ...

兵临城下的博客 286

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

DesignPattern_Java:Adapter Pattern

适配器模式 Adapter 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.将一个类的接口变换

Anonymous 2342

Java设计模式之适配器模式

Java设计模式之适配器模式前言正文一、定义二、分类三、结构四、缺省适配器模式五、双向适配器六、适配器模式优缺点与适用环境优点类适配器模式:对象适配器模式:缺点类适配器模式:对象适配器模式:适用环境 前言 适配器模式是一种使用频率非常高的结构型设计模式,如果系统中存在不兼容的接口,可以通过引入一个适配器来使原本因为接口不兼容而不能在一起工作的两个类能够协同工作。 在GoF设计模式中包含7种结构型模...

js_tengzi的博客 393

adapter pattern java_Java设计模式之适配器模式Adapter Pattern

适配器模式Adapter Pattern类型:结构型模式定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。--《JAVA与模式》优点:更好的复用性更好的扩展性缺点:过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部被适配成了B接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。...

weixin_42321940的博客 265

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

适配器模式作为一种结构型设计模式,在软件系统设计开发中使用到的频率非常之高,比如Java中的jdbc。本文结合具体案例讲解适配器模式的知识要点。

IT熊的专栏 387

Java设计模式-结构型设计模式-适配器模式

Java设计模式- 结构型设计模式-适配器模式

Fatter$hday的博客 1932

图解Java设计模式之适配器模式

图解Java设计模式之适配器模式现实生活中的适配器例子适配器模式基本介绍适配器模式工作原理类适配器模式类适配器模式注意事项和细节对象适配器模式对象适配器模式注意事项和细节接口适配器模式适配器模式在SpringMVC框架应用的源码分析适配器模式的注意事项和细节 现实生活中的适配器例子 泰国插座用的是两孔的(欧标),可以买个多功能转换插头(适配器),这样就可以使用了。 适配器模式基本介绍 1)适配器...

不一样的花朵的博客 519

Java设计模式——适配器模式【Adapter Pattern】

Java设计模式、适配器模式、Adapter Pattern

scorpio的博客 1043

java设计模式---适配器模式(Adapter pattern)

java设计模式—适配器模式(Adapter pattern) 前面已经详细的讲解了java23种设计模式中的创建型模式,接下来就讲解下结构型设计模式—适配器模式(Adapter pattern) 1. 定义 适配器模式把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不兼容而无法一起工作的两个类能一起工作。适配器模式是结构型设计模式之一,其在不修改原来两个模块代码的情况下,将...

渔潭的博客 535

JAVA设计模式之适配器模式

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作

hyzsuccess的博客 894
上一篇: ViewModel 唯一性原理解析、生命周期管理解析
下一篇: Android Lifecycle 使用、原理解析
PokeMa
博客等级 码龄10年 101粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值