最新要闻
- “原神玩家”和“塞尔达玩家”打起来了?不过是恶臭互联网的又一次狂欢_世界新消息
- 别了机械硬盘?全固态玩家转向了当“垃圾佬”
- 全系2.0T+8AT比BBA香多了!新款林肯冒险家上市:24.58万起
- 环球即时看!最大96GB内存不是梦!笔记本将迎来单条48GB DDR5内存
- 7499元 华硕天选4R游戏本上架:锐龙7-7735H、165Hz高刷
- 取代C++!微软改用Rust语言重写的Win11内核:正式来了
- 中药成香饽饽! “药茅”片仔癀20年涨价18次 专家称没病别跟风买_全球快资讯
- 多省加入封杀行列!老头乐销冠雷丁汽车申请破产 创始人被曝身居海外
- SSD能有多便宜:2TB新品不到700元!长江存储232层原片颗粒加持
- 沙特等减产石油 美国被逼补库存:印度捡漏俄油占大便宜 2022年省下50亿美元
- 当前资讯!国内第一!深圳要打造5G-A之城 全市5G网速平均必500Mbps 上行下载更狠
- 长沙霸占车位车主致歉 栏杆拆除:双方均再次道歉 从没想会被网暴-环球今亮点
- 众望所归!马斯克宣布卸任推特CEO:神秘女子将接班
- 狗狗失踪7年后回家 主人煮饺子庆团圆:网友感慨万物皆有灵
- IGN 10分新神作!《塞尔达传说:王国之泪》港服日服已正式解锁
- 热消息:刘强东真兄弟!20年投入员工福利近500亿、建设公寓2.5万套
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Java设计模式-适配器模式
适配器模式(Adapter Pattern)是一种常见的设计模式,它主要用于在不改变现有系统结构的情况下,将一个类的接口转换成客户端所期望的另一个接口。在本文中,我们将介绍适配器模式的基本概念、实现方法以及优缺点,并探讨适配器模式在Java编程语言中的具体应用。
简介
适配器模式是一种结构型设计模式,它主要通过将一个类的接口转换成客户端所期望的另一个接口,来解决接口不兼容的问题。适配器模式一般包括三个角色:目标(Target)、适配器(Adapter)和被适配者(Adaptee)。其中,目标角色是客户端所期望的接口,适配器角色是将被适配者的接口转换成目标接口的类,被适配者角色是需要被适配的类。
【资料图】
适配器模式与其他设计模式的区别在于,它主要是用于接口转换,而其他模式则主要用于解决其他问题,如工厂模式用于对象创建、单例模式用于对象的唯一性等等。
实现
下面我们通过一个具体的例子来演示如何使用Java编程语言实现适配器模式。假设我们有一个音乐播放器程序,其中包括一个播放MP3音乐的接口MusicPlayer和一个播放CD音乐的接口CdPlayer,而我们想要将CdPlayer适配成MusicPlayer接口,这时就可以使用适配器模式。
首先,我们定义目标接口MusicPlayer:
public interface MusicPlayer { public void play(String fileName);}
然后,我们定义被适配者接口CdPlayer:
public interface CdPlayer { public void playCd(String cdName);}
接下来,我们实现一个适配器类CdPlayerAdapter,它实现了目标接口MusicPlayer,并将被适配者接口CdPlayer的playCd方法转换成了目标接口MusicPlayer的play方法。
public class CdPlayerAdapter implements MusicPlayer { private CdPlayer cdPlayer; public CdPlayerAdapter(CdPlayer cdPlayer) { this.cdPlayer = cdPlayer; } @Override public void play(String fileName) { cdPlayer.playCd(fileName); }}
最后,我们可以使用适配器类CdPlayerAdapter来播放CD音乐了。
public class Main { public static void main(String[] args) { CdPlayer cdPlayer = new CdPlayerImpl(); MusicPlayer musicPlayer = new CdPlayerAdapter(cdPlayer); musicPlayer.play("CD_NAME"); }}
优缺点
优点:
- 增加了类的透明性和复用性。由于适配器模式将目标类和被适配类解耦,使得这些类可以独立地进行变化和复用。
- 提高了系统的灵活性。由于适配器模式可以动态地将不兼容的接口转换成兼容的接口,从而使得系统更加灵活。
- 可以让客户端调用简单。由于适配器模式将客户端与被适配者分离,客户端只需要面对目标接口,而不需要面对被适配者接口,因此客户端的代码变得简单明了。
缺点:
- 增加了系统的复杂性。由于适配器模式需要增加一个适配器类来进行接口转换,因此系统的结构变得更加复杂。
- 可能会降低系统的性能。由于适配器模式需要进行额外的接口转换操作,因此可能会降低系统的性能。
运用场景
适配器模式通常适用于以下几种场景:
- 系统需要使用一些现有的类,但这些类的接口不符合系统的要求。
- 两个或多个独立的系统需要进行协作,但它们的接口不兼容。
- 需要在不修改现有代码的情况下,增加或修改一些功能。
在Java编程语言中,适配器模式广泛应用于各种接口的适配,例如数据源适配、日志适配、UI组件适配等等。
总结
适配器模式是一种常见的设计模式,它主要用于解决接口不兼容的问题。在Java编程语言中,适配器模式可以通过实现一个适配器类来进行接口转换,从而增加了类的透明性和复用性,提高了系统的灵活性,并让客户端调用更加简单。然而,适配器模式也存在一些缺点,如增加系统的复杂性和可能会降低系统的性能。适配器模式通常适用于系统需要使用现有类、多个系统需要协作、需要增加或修改功能等场景。
关键词:
Java设计模式-适配器模式
“原神玩家”和“塞尔达玩家”打起来了?不过是恶臭互联网的又一次狂欢_世界新消息
别了机械硬盘?全固态玩家转向了当“垃圾佬”
全系2.0T+8AT比BBA香多了!新款林肯冒险家上市:24.58万起
环球即时看!最大96GB内存不是梦!笔记本将迎来单条48GB DDR5内存
7499元 华硕天选4R游戏本上架:锐龙7-7735H、165Hz高刷
取代C++!微软改用Rust语言重写的Win11内核:正式来了
中药成香饽饽! “药茅”片仔癀20年涨价18次 专家称没病别跟风买_全球快资讯
多省加入封杀行列!老头乐销冠雷丁汽车申请破产 创始人被曝身居海外
SSD能有多便宜:2TB新品不到700元!长江存储232层原片颗粒加持
全球微资讯!Windows7 上运行docker实战
4月份以来17家银行下调存款利率 有望助推债市继续走牛 聚焦
美债上限谈判无进展 债务违约风险加大-环球速讯
沙特等减产石油 美国被逼补库存:印度捡漏俄油占大便宜 2022年省下50亿美元
当前资讯!国内第一!深圳要打造5G-A之城 全市5G网速平均必500Mbps 上行下载更狠
焦点热议:1000W用户1Wqps高并发签到系统的架构和实操
学系统集成项目管理工程师(中项)系列21a_整体管理(上)
长沙霸占车位车主致歉 栏杆拆除:双方均再次道歉 从没想会被网暴-环球今亮点
众望所归!马斯克宣布卸任推特CEO:神秘女子将接班
狗狗失踪7年后回家 主人煮饺子庆团圆:网友感慨万物皆有灵
IGN 10分新神作!《塞尔达传说:王国之泪》港服日服已正式解锁
热消息:刘强东真兄弟!20年投入员工福利近500亿、建设公寓2.5万套
【天天播资讯】百度的“New Bing”终于来了!但别高兴得太早
全球看热讯:苹果年度跳水王!M2版Mac mini降到3399元了:不用领券
当前动态:Python学习之二:不同数据库相同表是否相同的比较方法
中芯国际人事再变动 刘训峰担任副董事长:基本年薪334万元 世界信息
性能逼近PS5 ROG掌机正式发布:首发锐龙Z1处理器 畅玩3A大作-天天观速讯
两个妈妈!英国首批三亲婴儿诞生:体内有三个人的DNA
[Linux] 如何查看Centos用户登陆记录?[转载]_全球即时
今日热讯:【财经分析】REITs二级市场止跌回稳 机构看好高速板块后续表现
5月26日上映!迪士尼《小美人鱼》内地版配唱阵容官宣:黄绮珊领衔 短讯
环球今亮点!任天堂《塞尔达传说:王国之泪》获超低评分:太复杂玩不进去
司机400升油箱加到430升仍没加满:费用近3000元 已向多部门举报|看热讯
打开PDB报错ORA-30013
曝APP停摆、发不出工资 爱驰汽车再渡劫-每日短讯
当前快播:兆易创新首发Arm Cortex-M7内核MCU:600MHz超高频率!性能暴涨40%
《塞尔达传说:王国之泪》评分公布!IGN无悬念打出10分满分-新资讯
视点!高叶祝张颂文福如东海寿比南山:晒吃面照庆生
中芯国际发布Q1财报:利润下滑44% 尚未看到市场回暖 焦点日报
S5PV210 | 微处理器启动流程
P3723 [AH2017/HNOI2017]礼物(FFT)
益科正润:美国债务违约倒计时,“去美元化”正当时
【财经分析】土总统埃尔多安寻求连任面临挑战_环球新消息
难怪叶二娘要勾引虚竹的父亲,你看幕后黑手是谁?叶二娘喊他哥哥_前沿资讯
当前热讯:一颗巨型小行星正飞速靠近地球 网友:赶紧来撞我
今天开始 谷歌搜索大变样了:AI接管 焕然一新_环球视讯
同程酒店订单“订后即焚”功能引热议 网友:这是要防谁?
前方畅通日产轩逸频刹车减速 本田飞度看不下去:右侧也要超过去
农村母女嫌路边冷藏车太吵 要求关掉制冷机未果 一砖砸碎车玻璃-当前热文
ChatGPT 再遭禁用 | 人工智能时代下数据安全如何保障
Spring MVC官方文档学习笔记(一)之Web入门
当前报道:python 多进程jieba分词,高效分词,multiprocessing
277米!华为WATCH Ultimate非凡大师助力 潜水员韩颋再创亚洲洞穴潜水记录
不想做“四眼仔”!怎样科学使用电子产品?这4点学起来
环球速看:“男生减速带”视频为什么能爆红?抖音科普
海信手机天猫旗舰店停运:页面显示“店铺终止经营公告”-世界看点
沙特准备进军国际传媒业:钱不是问题要的是影响力
机构调研团走进集泰股份 天天热文
每日热闻!记录--Vue3+TS(uniapp)手撸一个聊天页面
世界时讯:ios打包ipa的四种实用方法(.app转.ipa)
全球热消息:定了!AIRIOT新品发布会,6月6日北京见。
商品日报(5月11日):沪镍跌超5%创逾一个月新低 棕榈油跌超3% 环球新视野
当前速看:六安市裕安区:大抓基层,带动乡村“跑”起来
比三星更稳、比致态便宜!西部数据SN770 2TB固态硬盘只要789元
NVIDIA业绩不给力 黄仁勋年收入锐减!仅员工中位值的94倍 视焦点讯
世界微动态丨LG推出新款超宽带鱼屏:Nano IPS面板 配有雷电4
买菜车也疯狂!丰田卡罗拉Nightshade特别版官图发布:很酷炫
今日热讯:27岁未婚女子入职前被要求做孕检:她当场拒绝了
播报:飘飘遇仙全集狼太郎txt无删减 飘飘遇仙全集狼太郎txt
构建万物互联,华为云IoT+鸿蒙重燃物体感知-全球热点评
JavaScript全解析——this指向|环球今日报
实现高并发秒杀的 7 种方式,写的太好了,建议收藏!!
译:从分布式微服务到单体
谷歌全线反击!PaLM 2部分性能已经超越GPT-4-全球今亮点
【财经分析】两只转债接连进入“下线倒计时” 市场如何接纳退市常态化? 要闻
在街头弹钢琴的他,登上了音乐厅! 热头条
一口一个更好吃:德芙84g袋装小巧粒7.8元/袋大促(原价18元)
环球观焦点:跑步直追!比亚迪高阶智驾第三季度上车:名为DNP、汉将首搭
被指滥用应用市场主导地位:苹果再次遭遇反垄断调查 焦点速看
全球观点:华为WATCH 4星球系列上演宇宙级浪漫 健康领域华为或将迎来重大突破
天舟六号货运飞船与空间站组合体完成交会对接
环球热头条丨用Python实现艺术绘画,人生苦短,代码赛高
【新华500】新华500指数(989001)11日收跌0.18%-世界微动态
世界头条:美联储高利率风险仍存在 黄金期货能否延续涨势
学生点外卖:因围墙太高 小哥摇树报送餐位置
每日快讯!来自“公路王者”的检验!蔚来ES6被两大货车夹击:框架完好人员安全
小米电视A55/A65竞技版开售:1799就能有4K/120Hz高刷大屏|天天通讯
iQOO Neo8 Pro上架:首发天玑9200+ CPU性能比骁龙8 Gen2更猛 实时焦点
微型电动车战火再起!长安Lumin周年庆至高优惠1万硬刚五菱
环球热议:如何为漆面准备金属
天天快看:有文化的网名情侣(有文化的网名)
Python工具箱系列(三十一)
天天视点!可变参数的格式化输出
利用kali破解WiFi密码_全球热消息
天天观焦点:重庆市高级人民法院依法公开宣判张波、叶诚尘故意杀人案
李想说出大实话:理想L8最大竞争对手其实是这台车
号称“不泄密” 微信键盘1.0.6发布:加入2项新功能
起售价或低于25万 凯迪拉克GT4实车曝光:家族最便宜SUV来了|世界今热点
长沙被占车位成为网红打卡地:有人两百公里外赶来直播 环球快看
省级校本教研基地工作总结(精选26篇)|世界观点