设计模式-适配器模式示例|全球资讯
(资料图片仅供参考)
下面是一个完整的适配器模式的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 VlcPlayer { public void playVlc(String fileName) { System.out.println("Playing vlc 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"); } } }// 测试代码public class AdapterPatternDemo { public static void main(String[] args) { AudioPlayer audioPlayer = new AudioPlayer(); audioPlayer.play("mp3", "beyond the horizon.mp3"); audioPlayer.play("mp4", "alone.mp4"); audioPlayer.play("vlc", "far far away.vlc"); audioPlayer.play("avi", "mind me.avi"); }}
输出结果如下:
Playing mp3 file. Name: beyond the horizon.mp3Playing mp4 file. Name: alone.mp4Playing vlc file. Name: far far away.vlcInvalid media. avi format not supported
在这个示例中,适配器模式将一个不支持的音频格式转换成了支持的格式,并通过适配器的方式来实现播放。具体而言,AudioPlayer
类作为客户端调用 MediaPlayer
接口的 play
方法。如果需要播放的音频格式是不支持的,AudioPlayer
将会创建一个适配器对象,并通过该适配器对象来播放音频。
在适配器模式的示例中,有以下几个角色:
目标接口:MediaPlayer
接口定义了 play
方法,用于播放音频文件。被适配对象:VlcPlayer
和 Mp4Player
类表示两种不兼容的音频格式,不能直接播放。适配器:MediaAdapter
类实现了 MediaPlayer
接口,同时包含一个被适配对象的引用。MediaAdapter
类将不支持的音频格式转换成支持的格式,并通过被适配对象来实现播放。客户端:AudioPlayer
类作为客户端,使用 MediaPlayer
接口来播放音频文件。如果需要播放的音频格式不支持,AudioPlayer
将会创建一个适配器对象,通过适配器来实现播放。适配器模式的优点在于它可以将两个不兼容的接口进行连接,从而实现代码的复用和扩展性的提高。如果有新的音频格式需要支持,只需要实现一个新的适配器即可。
另外,适配器模式可以提高代码的可读性和可维护性。它可以将不相关的代码放在不同的类中,从而使代码更易于理解和维护。
标签:
推荐
-
当前简讯:科学家利用GPT AI解码人类思维 读心术可能成真!
德克萨斯大学奥斯汀分校的研究人员ChatGPT+的生成式预训练+Transformer++AI+模型,从功能性+MRI++记录中重
来源: -
Midjourney V5.1发布:提示词设置更简单、禁用词审核更智能
Midjourney上线了Midjourney5 1版本,其旨在通过简单的提示提供更好的结果,同时开发人员还添加了一个新的
来源: -
万朗磁塑:我公司于2023年3月设立山东万朗,注册资本2000万元,其中万朗磁塑投资1020万元,占比51%
同花顺(300033)金融研究中心5月4日讯,有投资者向万朗磁塑(603150)提问,请问公司作为山东万朗智能科技
来源: -
Chegg 首席执行官称对 ChatGPT 的担忧被「过分夸大」导致股价暴跌 48% 时讯
提供家庭作业辅导和在线教育的公司+Chegg+的股价在周二暴跌了+48%,原因是该公司业绩报告中提到了人工智能
来源: -
谷歌 DeepMind 首席执行官:未来几年人工智能可能拥有「人类水平」的智能-全球热点评
谷歌+DeepMind+首席执行官+Demis+Hassabis+表示,通用人工智能++有望在几年内变成现实。人工智能能够与人类
来源: -
微软将生成式 AI 应用 Copilot 集成到 SharePoint
微软发布博客文章宣布了一系列+SharePoint+和+OneDrive+的更新,其中包括+OneDrive+的升级、Microsoft+List
来源: -
世界百事通!众人皆降我不降,特斯拉宣布国产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表示,美联储再次加息但暗示紧缩或暂告一段落,日元似乎是这一决定的主要受益者
来源:
财富更多》
-
今日申购:慧智微、航天南湖_每日热议
今日申购:慧智微、航天南湖---广州慧智...
-
天天要闻:支持基础研究夯实创新根基
支持基础研究夯实创新根基---为健全完善...
-
旅游市场高开稳走_世界要闻
旅游市场高开稳走---今年“五一”假期,...
-
全球实时:金观平:更好发挥国家高新区示范作用
金观平:更好发挥国家高新区示范作用---...
-
截至去年底全国共有共青团员7358.3万名
截至去年底全国共有共青团员7358 3万名...
动态更多》
热点
- realme10系列正式宣布 采用双曲面屏正面顶部居中挖孔
- 五菱全新微型电动车内饰官图发布 座椅采用星际形打孔工艺
- 努比亚Z40星空典藏版正式开售 采用微米级油画笔触纹理技术
- iQOO11系列正式官宣 首批搭载骁龙8Gen2机型之一
- 海信34英寸带鱼屏显示器发布 支持165Hz刷新率
- OPPO明年将商用240W超级闪充 新一代电芯支持更高倍率充电
- 第一款Android手机渲染图曝光 横向滑盖设计和全尺寸键盘
- 吉利首款纯电皮卡11月9日上市 车辆续航里程超过610公里
- 努比亚Z40SPro星空典藏版正式公布 堪称窄边框天花板
- vivo无线运动耳机2今日正式上市 首销只要119元
- 世界热消息:美光英睿达t700pcie5.0ssd开始上市
- 焦点播报:喝什么茶叶好 女人应该喝什么茶叶好
- 焦点关注:这个“五一”假期,年轻人玩得很酷炫
- 每日看点!天气渐热跑步出汗多 :补水和补盐哪个更重要?
- 欧巡赛之卡塔尔大师赛本周末在卡塔尔多哈教育城高尔夫俱乐部开战
- 车险在到期前几天可以办理好?
- 全球播报:wiz智能灯泡更新支持苹果home智能家居生态
- 消息称小米13/pro手机、平板6/pro已开始内部测试
- 释放数据要素价值 助力数字经济高质量发展 每日信息
- 桃子和西瓜可以一起吃不_桃子和西瓜可以一起吃-全球播资讯
- 连败不可怕,可怕的是输球已成习惯!切尔西彻底堕落,英超新鱼腩 环球微速讯
- 权益性支出与资本性支出的差别_权益性支出与资本性支出的差异是什么
- 微资讯!邓稼先的人生之路概括_邓稼先的人生之路
- 危在旦夕什么意思_危在旦夕的解释
- 正阳县气象局发布暴雨黄色预警【III级/较重】【2023-05-04】 焦点快报
- linux下nanosleep_&sleep_的区别|最新
- 原神破水盾用什么元素破最快_原神破水盾用什么元素 全球热推荐
- 外阴疣怎么治疗_外阴尖锐湿疣严重吗_独家焦点
- 安徽省阜阳市2023-05-03 21:36发布雷电黄色预警|全球速递
- 不只是启动声音,微软还悄悄降低了win11oobe动画的质量
- 偷窃到一半就被捕,只因嘉定爷叔太给力……_天天热议
- 重磅!国内首个鸿蒙行业5G智能网关通过OpenHarmony测评并商用!
- 五一全国消费强势回暖,消费金额同比2019年涨7成
- 梅西三停!C罗等了6年,1.09亿重夺冠军宝座:姆巴佩第3詹姆斯第4 资讯推荐
- 当前聚焦:米体:米兰或下周初续约莱奥,年薪700万欧&里尔付2200万欧赔款
- 中国五一档电影总票房破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)“买入”评级 持续看好市占率提升 滚动