设计模式-适配器模式
【资料图】
适配器模式是一种结构型设计模式,它用于将一个类的接口转换成另一个接口,以便于两个不兼容的接口能够一起工作。适配器模式有时也被称为包装器模式。
适配器模式包含以下角色:
目标接口(Target Interface):定义客户端所需的接口,这是客户端代码调用的接口。适配器(Adapter):适配器是一个类,它实现目标接口并且包含一个对被适配对象的引用。被适配对象(Adaptee):被适配对象是一个已经存在的对象,它的接口与目标接口不兼容。客户端(Client):客户端通过目标接口调用适配器的方法来与被适配对象进行交互。下面是一个适配器模式的Java代码示例:
首先定义一个目标接口:
public interface MediaPlayer { public void play(String audioType, String fileName);}
接着定义一个具体的被适配对象:
public class Mp4Player { public void playMp4(String fileName) { System.out.println("Playing mp4 file. Name: "+ fileName); }}
接下来定义适配器,它实现了目标接口,并包含一个对被适配对象的引用:
public class MediaAdapter implements MediaPlayer { AdvancedMediaPlayer advancedMusicPlayer; public MediaAdapter(String audioType){ if(audioType.equalsIgnoreCase("vlc") ){ advancedMusicPlayer = new VlcPlayer(); }else if (audioType.equalsIgnoreCase("mp4")){ advancedMusicPlayer = new Mp4Player(); } } @Override public void play(String audioType, String fileName) { if(audioType.equalsIgnoreCase("vlc")){ advancedMusicPlayer.playVlc(fileName); }else if(audioType.equalsIgnoreCase("mp4")){ advancedMusicPlayer.playMp4(fileName); } }}
最后定义一个客户端,它通过目标接口调用适配器的方法来与被适配对象进行交互:
public class AudioPlayer implements MediaPlayer { MediaAdapter mediaAdapter; @Override public void play(String audioType, String fileName) { //播放 mp3 音乐文件的内置支持 if(audioType.equalsIgnoreCase("mp3")){ System.out.println("Playing mp3 file. Name: " + fileName); } //mediaAdapter 提供了播放其他文件格式的支持 else if(audioType.equalsIgnoreCase("vlc") || audioType.equalsIgnoreCase("mp4")){ mediaAdapter = new MediaAdapter(audioType); mediaAdapter.play(audioType, fileName); } else{ System.out.println("Invalid media. " + audioType + " format not supported"); } } }
这个例子中,客户端调用了 MediaPlayer
接口的 play
方法。如果传入的文件类型是 mp3
,则直接在 AudioPlayer
类中播放,否则就通过适配器模式实现播放其他格式的音频文件。当需要播放不支持的音频格式时,AudioPlayer
类会创建一个 MediaAdapter
对象,该对象可以将不支持的音频格式转换成支持的格式,然后调用 MediaPlayer
接口的 play
方法来播放该格式的音频文件。
使用适配器模式的好处是可以将两个不兼容的接口进行连接,从而实现代码的复用和扩展性的提高。如果有新的音频格式需要支持,只需要实现一个新的适配器即可。
标签:
推荐
-
世界百事通!众人皆降我不降,特斯拉宣布国产Model 3/Y全系上涨2000元
5月2日,据特斯拉中国官网,特斯拉全线上调在华销售主力车型价格,Model3和ModelY的起售价均上涨2000元。其
来源: -
【报资讯】小米13 Ultra白色16GB +1TB版今日开售
今日10点,小米13Ultra+白色16GB++1TB+版将正式开售,预计售价为7299元。小米13Ultra搭载第二代骁龙8移动平
来源: -
微软首席科学家反对马斯克呼吁禁止人工智能的公开信 称其为模糊不清的要求 全球速递
随着+OpenAI+的+ChatGPT、微软的新+Bing+和+Google+的+Bard+等+AI+聊天机器人的普及,生成式人工智能成为了
来源: -
使用人民币结算中国进口商品有助于阿根廷应对当前经济挑战——访阿根廷布宜诺斯艾利斯大学经济学教授马奇尼
新华财经布宜诺斯艾利斯5月3日电(记者王钟毅)阿根廷布宜诺斯艾利斯大学经济学教授豪尔赫·马奇尼日前...
来源: -
天天看热讯:瑞银策略师Vassili Serebriakov表示,美联储再次加息但暗示紧缩或暂告一段落,日元似乎是这一决定的主要受益者
瑞银策略师VassiliSerebriakov表示,美联储再次加息但暗示紧缩或暂告一段落,日元似乎是这一决定的主要受益者
来源: -
正阳县气象局发布暴雨黄色预警【III级/较重】【2023-05-04】 焦点快报
正阳县气象台2023年5月4日02时02分发布暴雨黄色预警信号:预计未来6小时内,我县真阳街道、熊寨镇、慎水乡
来源: -
重磅!国内首个鸿蒙行业5G智能网关通过OpenHarmony测评并商用!
近日,深圳鸿元智通科技有限公司(以下简称鸿元智通)推出的智鸿5G智能网关设备ZHSE-U6202(以下简称ZHS...
来源:
财富更多》
-
旅游市场高开稳走_世界要闻
旅游市场高开稳走---今年“五一”假期,...
-
全球实时:金观平:更好发挥国家高新区示范作用
金观平:更好发挥国家高新区示范作用---...
-
截至去年底全国共有共青团员7358.3万名
截至去年底全国共有共青团员7358 3万名...
-
焦点速递!“五一档”全国电影票房突破15亿元
“五一档”全国电影票房突破15亿元---经...
-
以绿为底打造自然生态公园城市
以绿为底打造自然生态公园城市---11年前...
动态更多》
热点
- realme10系列正式宣布 采用双曲面屏正面顶部居中挖孔
- 五菱全新微型电动车内饰官图发布 座椅采用星际形打孔工艺
- 努比亚Z40星空典藏版正式开售 采用微米级油画笔触纹理技术
- iQOO11系列正式官宣 首批搭载骁龙8Gen2机型之一
- 海信34英寸带鱼屏显示器发布 支持165Hz刷新率
- OPPO明年将商用240W超级闪充 新一代电芯支持更高倍率充电
- 第一款Android手机渲染图曝光 横向滑盖设计和全尺寸键盘
- 吉利首款纯电皮卡11月9日上市 车辆续航里程超过610公里
- 努比亚Z40SPro星空典藏版正式公布 堪称窄边框天花板
- vivo无线运动耳机2今日正式上市 首销只要119元
- 中国五一档电影总票房破15亿元_世界新动态
- 孙维
- 全球观焦点:增值税专用发票勾选认证平台为什么打不开_增值税专用发票勾选认证平台
- 空调风扇维修_空调风扇好用
- 民宿管家,站上风口也得把准风向-今日快看
- 高质量发展 | 博乐市“五一”假期开展首届农资展销会
- 在线k歌视频播放_在线k歌_全球聚焦
- 转发
- 当日快讯:百润股份:2023年将加快烈酒基地升级项目建设进程
- 穿越女医生嫁给王爷陪葬的小说_穿越女医生
- 新玩法带动新消费——“五一”假期旅游市场观察
- 星起航:亚马逊卖家如何进行竞品分析来提升产品市场优势|每日头条
- 【播资讯】“五一”期间预计中国营业性客运量超2.7亿人次
- “五个一百”:澎湃正能量,为新征程凝聚源动力
- 每日快报!秦皇岛34路公交车路线路线图_秦皇岛34路公交车路线
- 【速看】总投资65.6亿元!第二届浦江乡贤大会重大项目签约
- 相宜本草红景天系列功效_相宜本草红景天怎么样
- 修眉毛的技巧和方法视频(修眉毛的技巧)_当前短讯
- 聚合力支持机器人产业发展 讯息
- 瑞银推介2年期和6年期债券 为收购瑞信以来首次发债
- 2.74亿人次,花了1480.56亿元!-天天热资讯
- 郭艾伦无缘辽宁G4生死战 因伤连续缺阵第二场 焦点消息
- 放喷点火成功!钻探超8500米,证实有气-全球看点
- 全球速看:挖金船
- 返程高峰来了,湖南多处高速路段缓行|天天快资讯
- 广西高速公路服务区刮起“民族风”丨当三月三遇上五一
- 世界微动态丨高反免疫的实力派选手 试驾欧尚Z6 2.0T
- 美国经济前路难测:银行业危机汹汹 债务僵局还来添乱|当前最新
- 热消息:滑步车小轮车玩转长沙 “五一”假期另类群众赛事表演引人注目
- 微软推出pcgamepass新朋友推荐计划_全球热推荐
- 百度生物计算研究成果登《Nature》正刊
- “千眼天珠”预计下月试运行
- 一天使劲压出300份葱包桧,杭州武林夜市女摊主笑称:两只胳膊不一样粗了 天天信息
- 仅剩1天!北京适合一日游的景点,不少还免费!你去过几个?
- 教育部高等学校戏剧与影视学类专业教学指导委员会第十五次会议简报
- 交易增值税发票哪里开
- 世界观察:国际金价徘徊在2020美元附近,且看FED如何“走钢丝”
- 天天热资讯!香港首季经济增长超预期!高盛预测全年增长6%
- 天天微头条丨各主要高速公路、国省道干线交通总体安全顺畅
- 全球“街”力丨北美民众如何看中国?这些回答亮了
- 英飞凌签约国产碳化硅材料供应商北京天科合达
- “学历很高却仍无法生活自理”?外国网友这波吐槽,扎心了_天天速看料
- “欣欣”突然死亡,尸检报告出炉 环球讯息
- 康佳电视65R6荣获艾普兰奖 “软硬”兼备展现科技创新实力
- 天天热点评!崔东树:1-3月中国汽车出口106.9万台 同比增长54%
- 一张图:2023/05/03交易品种枢纽点+多空占比一览
- 创维汽车黄宏生:盈亏平衡点是卖10万辆 明年实现_全球百事通
- “坏胆固醇”高了怎么办?一起来看
- Fire-BolttPhoenix Ultra智能手表发布
- 看点:高盛:维持恒生银行(00011)“沽售”评级 目标价上调至128港元
- 服务返程客流,5月2、3日地铁1、2、10号线加开定点加班车
- 每日热讯!男生和女生谈恋期间男生偷偷录了私密视频 分手后以此要挟女生在
- 红霉素肠溶片用法用量_红霉素肠溶片说明书|世界热文
- 当前资讯!利好英镑!高盛称英国经济有人性,上调利率预测至5%
- 楼道堆物也能焕发第二春!社区里的“跳蚤市集”你见过吗?
- 安信国际:予世纪睿科(01450)“买入”评级 目标价6.5港元
- 7小时紧急救援 西安警方营救秦岭山中受伤游客
- 环球即时:降级系统应用会带来风险,安卓5月安全补丁堵住漏洞
- 世界聚焦:Indiedroid Nova单板计算机发布
- 宁德时代、比亚迪分列动力电池一季度全球市占率一、二名 环球热资讯
- 环球速看:同程旅行“五一”大数据:客流峰值超过春运,国内游、出境游全面复苏
- 今热点:南非电力不足,铂金或很快供不应求!
- 苻皇后_关于苻皇后的简介
- 热头条丨他用手机拍照,办了一场摄影展
- 食指戒指的含义图_食指戒指的含义
- 全球速看:苻登_关于苻登的简介
- 江苏扬州:科技馆里过“五一” 天天速看
- 长城黄家驹为什么被禁_黄贯中谈黄家驹死因 全球新资讯
- 中国股市:从亏掉裤腰带到开启正收益,我是这样做的
- 成都市天府新区邮政编码查询_成都市天府新区的邮政编码是多少|焦点观察
- 微软 Xbox 手柄新配色公布,灵感源于 OPI 指甲油|环球关注
- 全球速递!言情小说床文片段特污校园_言情小说床文片段特污
- 雷蛇发布噬魂鲨极速版 Xbox 授权耳机
- 瑞信:维持华泰证券(06886)“跑赢大市”评级 目标价升至12.2港元
- 里昂:维持海螺水泥(00914)“跑赢大市”评级 目标价降至28.1港元 每日播报
- 曝光丨近期湖南各地查处多起非法违法行为-天天资讯
- 天天播报:扫地机器人品牌 Neato 宣布退出市场,多年未达成销售目标
- 环球消息!尼康z8相机5月25日铺货,单机身售价4599欧元
- 天天视讯!圆锥面积的计算公式_圆面积的计算公式
- 瑞信:下调国药控股(01099)评级至“中性“ 目标价升至29港元|当前播报
- 世界最资讯丨斗罗大陆:武魂融合技排名,妖魅上榜,最厉害竟是俩辅助
- 致敬坚守 拼搏奋斗 滚动
- 文章再婚了?新女友身份曝光后,网友坐不住了:下一个姚笛?可惜了……
- 全球报道:Web2与Web3开发的不同之处
- 利空再度来袭!隔夜国际油价大幅下挫 中石油领衔下跌
- 环球消息!【原耽双男主小说推荐】《自由行》by白滚水 txt
- 大和:维持耐世特(01316)“买入”评级 目标价降至8.2港元
- 世界热头条丨未签订劳动合同离职赔偿金怎么算_离职赔偿金怎么算
- 欧元有支撑!机构前瞻欧元区通胀前景,预测欧银本周加息25个基点 世界快报
- 遇见匠心之我是能手 00后“镶贴匠”:“我贴的瓷砖,连强迫症都能治愈” 天天看热讯
- 焦点热文:俄罗斯将教授神经网络来帮助人们选择解决方案
- 中经评论:数字人民币怎样改变我们的生活?
- 蓝厅观察丨祖国带我们安全回家
- 特稿丨爆火的淄博和它的“过客”经济_天天快资讯
- 每日精选:美原油交易提醒:马斯克预言要成真了?油价重挫5%创五周新低,投资者担忧美国债务违约
- 美民调:更多美国人认为枪支和犯罪应列为美国首要问题-视讯
- 新华全媒+|“赴淄赶烤”火了 更多城市“跃跃欲试” 世界最资讯
- 肯德基真的香!百胜中国(09987)总收入和经营利润创一季度历史新高
- 环球关注:百胜中国首季收入和经营利润创历史新高!高管直言:经营环境仍充满挑战
- 浙商证券:维持维达国际(03331)“买入”评级 持续看好市占率提升 滚动
- 【世界新视野】生成式AI来了,“新生代”科普怎么做?
- 天天亮点!消息称三星和LG投资数十亿美元扩产OLED屏
- 谷歌、微软、OPENAI、ANTHROPIC首席执行官将于周四出席白宫人工智能会议
- 热门:北美媒体公司Vice或于几周内申请破产
- 苹果发布 tvOS 16.5 Beta 4(20L5559a)更新-世界报资讯
- AI哨所|通用人工智能时代即将来临?这位大佬很乐观_即时看
- 榉木和橡胶木哪个好(榉木和橡木哪个好)
- 苹果与谷歌起草追踪设备行业规范 三星等厂商宣布支持 世界视点
- 全球焦点!美国和中国市场表现强劲 星巴克(SBUX.US)Q2业绩超预期
- 今日看点:外汇交易提醒:美元从三周高点回落,欧洲通胀放缓欧银或小幅加息
- 全铝底盘/700+公里续航?奇瑞放必杀技了 这旗舰轿车实力拉满!
- WiZ 智能灯泡更新支持Matter协议,兼容苹果Home
- 世界观点:小鹏G9下半年将在广州黄埔区开展自动驾驶载客测试
- 官方:因在对热刺后就主裁发表不当言论,英足总向克洛普提起指控-世界新消息
- 拉萨 不负春光添新绿
- 假期返程高峰到来 高速公路流量创历史新高 全球快播
- 巩固房地产市场企稳回升势头
- 浙江1.9秒救赎自己!辽篮能否做到?打回沈阳or广厦再进CBA总决赛?|全球报道
- 货运行业减污降碳再发力
- 天天热议:云南隆阳5.2级地震致杭瑞高速中断、乡镇卫生院受损
- 天天观天下!夏日狂欢
- 全球消息!港股大盘5月首日交投平淡 机构:恒指可能仍在低位持续上下波动
- 每日视点!航空运输的特点_航空运输的特点
- 天天讯息:荣耀首款商用笔记本 MagicBook Z3 14 发布
- 海韵至尊旗舰钛金 PRIME PX1600W 电源上架|观察