结构型模式之适配器模式(Adapter)

Apple CarPlay Certification Guide December 2022 解析V1.0 Apple CarPlay Certification Guide December 2022更新说明 阅读详情

我们想使用一些已经存在的Class,因为他们已经工作的很好,我们不希望也没必要再造一次轮子,但是他们没有实现我们需要的接口,无法直接拿来使用,怎么办?

适配器模式的作用在于将原来的调用形式转换传递到另外的接口中,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

这种情形多发生于老系统重构,或不同系统间的整合。


场景:我在电脑商店看上了一款外接键盘KeyBoard,但是它是P口的,我的笔记本多要求是U口的才能使用,那么这个时候就需要一个适配器来完成中间的适配工作。


设计:

示例代码:

interface USBKeyboard {
    void usbWork();
}
interface PS2Keyboard{
    void ps2Work();
}
class PS2ToUSBAdapter implements USBKeyboard {
    private PS2Keyboard ps2Keyboard;
    public PS2ToUSBAdapter(PS2Keyboard ps2Keyboard) {
        this.ps2Keyboard = ps2Keyboard;
    }
    @Override
    public void usbWork() {
        ps2Keyboard.ps2Work();//原本调用的是usbWork,这里传递给ps2Work
    }
}
class MyPS2Keyboard implements PS2Keyboard {
    @Override
    public void ps2Work() {
        System.out.println("我的PS2键盘在工作...");
    }
}
public class Test {
    public static void main(String[] args) {
        USBKeyboard usbKeyboard;//这里我需要哦一个USB键盘
        usbKeyboard = new PS2ToUSBAdapter(new MyPS2Keyboard());//这里我接上一个适配器,适配的是一个PS2的键盘
        usbKeyboard.usbWork();//我让USB键盘工作,打印的结果是:“我的PS2键盘在工作...”
    }
}


ArcGIS Pro SDK (二十五)工作流管理器 【代码】ArcGIS Pro SDK (二十五)工作流管理器。 阅读详情

相关推荐

【UV打印机】RYPC打印软件教程(二)-软件界面概述

下图是控制软件的主操作界面.将喷绘机的操作规纳为四块,分别为参数设置,任务选择,打印控制,系统维护,对于日常打印而言,只需操作任务选择,打印控制。从而使汲及的操作相对较少,使得系统对普通用户而言简单易用.

Print World的专栏 3599

适配器模式

简单讲解一下适配器模式

weixin_40598838的博客 129

告别MATLAB!用Python的PYPOWER搞定电力系统潮流计算(附Case30完整代码)

本文介绍了如何从MATLAB迁移到Python,使用PYPOWER工具包进行电力系统潮流计算。通过详细的环境准备、数据接口兼容性实践、潮流计算实现及最优潮流计算进阶,帮助工程师和学生无缝过渡到Python生态。文章还展示了结果处理与可视化技巧,并附有Case30完整代码示例。

weixin_30411819的博客 298

防腐层是如何工作的?

点击↑上方↑蓝色“编了个程”关注我~这是Yasin的第 69 篇原创文章网关在领域驱动设计中,有好几种推荐的架构(感兴趣的可以去我的个人网站看这篇文章《DDD之代码架构》)。但他们都有一个共同的特点:最外层都是网关(也有的叫适配器)。南向和北向对于网关来说,其实是分为南向和北向的。按照上北下南的概念,北向网关对应输入,南向网关应对输出。举例来说,一个服务提供的contro...

yasinshaw的博客 3621

树莓派4B:控制步进电机

文章目录准备阶段接线阶段树莓派程序 准备阶段 准备以下物品,淘宝都可以买到: 57步进电机 电源开关(220v转24v,3A,72W) 步进电机驱动器 电源线 电线 杜邦线 树莓派4B一套 具体型号如下: 接线阶段 整体:接线效果如下图 电源开关起220v转24v作用,很好接线,输出24v接入步进电机驱动器 步进电机驱动器的 A+ A- B+ B- 按提示接步进电机四线,步进电机上就会有说...

学习路上的鸭子的博客 1万+

uni-app项目中引入Vant UI组件库(完美避坑!!!)纯净版

uni-app项目中引入Vant UI组件库(纯净版--无uni-ui)

Wzmlzrr的博客 3万+

DDD防腐层设计

防腐层(Anti-Corruption Layer)思想:通过引入一个间接的层,就可以有效隔离限界上下文之间的耦合。防腐层往往属于下游限界上下文, 用以隔绝上游限界上下文可能发生的变化。

u011385940的专栏 8872

Xilinx System Generator多速率系统(Multi-Rate Systems)的使用

在本实验练习中,您将学习在System Generator中如何使用多个时钟域有效地实现具有多个数据速率的设计。

白码王子小张的博客 1093

从开源框架理解设计模式系列#Adapter适配器模式

what什么是适配器模式 GOF定义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。(Gof里面说这个别名是Wrapper模式,这里和装饰器模式容易混淆,因为装饰器也可以说是Wrapper) HeadFirst定义:将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。 why为什么需要适配器模式 这个模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼...

kimichen123的专栏 960

Unity URP风格化水面Shader全流程实现与性能优化指南

在游戏开发中,Shader是实现特定视觉风格的核心技术,它通过编写在GPU上运行的程序,控制模型每个像素的最终颜色与光照表现。其原理在于对顶点位置、纹理坐标、光照信息及深度等数据进行一系列数学运算与插值。这项技术的价值在于能够以极高的自由度创造从写实到卡通的各种渲染效果,同时通过算法优化实现对硬件资源的精准控制。在移动游戏、独立游戏等对性能与风格化有强烈需求的场景中,自定义Shader尤为重要。本文聚焦于使用Unity URP渲染管线,从零构建一个高效的风格化水面Shader,详细拆解了深度色、波浪动画、边

weixin_34320724的博客 371

硬件设计--DC/DC电源芯片详解

本文参考:http://www.elecfans.com/article/83/116/2018/20180207631874.html https://blog.youkuaiyun.com/wangdapao12138/article/details/79763343 第一次写博客,不喜勿喷,谢谢!!! DC/DC电源指直流转换为直流的电源,从这个定义上看,LDO(低压差线性稳压器)芯片也应该属于D...

weixin_30794499的博客 7873

PS2鼠标使用USB接口的转换器

为了出差方便,笔者购置了笔记本电脑,由于笔记本电脑已淘汰了PS2接口,于是家中的PS2鼠标就被闲置了起来,笔者突发奇想,USB鼠标可以通过一个简易的转接器插到台式机的PS2口中使用,反过来行不行呢?笔者做了试验,结果却很失望,根本不行。看来需要另辟蹊径,于是,一不做二不休,用PDIUSBD12和51单片机设计了一个PS2转USB的协议转换器。原本其实并不抱太大的希望,结果却神奇般地成功了,而且不需

龙图腾的博客 5884

小白的MatSWMM使用心路(二)——用matlab修改INP文件参数/使用matlab查找txt内容并修改多行内容

说是修改inp,但是里面的内容大部分还是讲怎么修改txt的……(?)。包含如何找到需要的参数(关键字)位置,以及修改那个位置的txt这样的内容。希望能帮助大家吧……Matlab你要多出好用的功能啊!

weixin_44276743的博客 4530

【c++设计模式09】结构型1:适配器模式(Adapter Pattern)

适配器模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。适配器模式使得原本由于接口不兼容而无法合作的类能够协同工作。

junxuezheng的博客 2051

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

结构型设计模式: 适配器模式(Adapter Pattern)

设计模式;结构型模式;结构型设计模式;适配器模式(Adapter Pattern)将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式(Adapter Pattern)属于结构型模式,又称为包装器(Wrapper)模式。结构型模式涉及到如何组合类和对象以获得更大的结构;结构型类模式采用继承机制来组合接口或实现。

智能多媒体 849

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

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

结构型模式--适配器模式【Adapter Pattern】

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。 JDK源码应用 ja...

thebigdipperbdx的博客 878

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【C#设计模式】6.适配器模式(Adapter Pattern)【结构型】

1.1 动机(Motivate) 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口? 1.2 意图(Intent) 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 --《设计模式》Gof .........

星Yeah 的博客 3311

结构型模式之适配器模式(Adapter Pattern)

概述: 将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。 根据适配器类与适配者类的关系不同,适配器模式可分为: 对象适配器:在对象适配器模式中,适配器与适配者之间是关联关系; 类适配器在:类适配器模式中,适配器与适配者之间是继承(或实现)关系。 对象适配器与类适配器不同之处在于: 类适配器通过继承来完成适配,对象适配器则是通过关联来完成。 角色 Target(目标抽象类):目标抽象类定义

weixin_49107940的博客 383

结构型模式:适配器模式(Adapter Pattern)

一、设计模式的分类 (如果以前看过关于设计模式的分类的话,这部分可以忽略!) 经过很多大神的总结,目前Java中一共23种经典的设计模式! 按照目的,设计模式可以分为以下三种用途: 1.创建型模式:用来处理对象的创建过程 2.结构型模式:用来处理类或者对象的组合 3.行为型模式:用来对类或对象怎样交互和怎样分配职责进行描述 创建型模式用来处理对象的创建过程,主要包含以下5种设计模

未来,你好! 653

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

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

weixin_43510208的博客 1046

设计模式基础概念(结构型模式):适配器模式(Adapter Pattern)

适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。适配器模式。 被。适配器。它的运作方式如下:实现时使用了构成原则: 适配器实现了其中一个对象的接口, 并对另一个对象进行封装。所有流行的编程语言都可以实现适配器。 这一实现使用了继承机制: 适配器同时继承两个对象的接口。请注意, 这种方式仅能在支持多重继承的编程语言中实现, 例如 C++。 使用示例: 适配器模式在 Java 代码中很常见。 基于一些遗留代码的系统常常会使用该模式。 在这种情况下, 适配器让遗留代码与现代的类得以相互合作。

учёба 1312

结构型-适配器模式(Adapter Pattern)

将一客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作,主要目的是兼容性。适配器模式可以细分为类适配器模式,对象适配器模式和接口适配器模式。

babstyt的博客 800

设计模式 ~ 结构型模式 ~ 适配器模式 ~ Adapter Pattern。

设计模式 ~ 结构型模式 ~ 适配器模式 ~ Adapter Pattern。

lyfGeek的博客 276

设计模式 结构型 适配器模式(Adapter Pattern)与 常见技术框架应用 解析

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口,从而使原本因接口不兼容而无法一起工作的类能够协同工作。这种设计模式在软件开发中非常有用,尤其是在需要集成不同系统或库时,它们的接口可能并不一致。

JINGWHALE 1691

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

适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。

茶色喵的博客 305

结构型模式——适配器模式(Adapter Pattern)

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,属于结构型模式。 统一本不兼容的接口功能。

qq_46658171的博客 284
上一篇: 行为型模式之观察者模式(Observer)
下一篇: 创建型模式之建造者模式(Builder)
conquer0715
博客等级 码龄18年 73粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值