当前位置: 首页 > news >正文

哈尔滨网站外包莞城网站建设公司

哈尔滨网站外包,莞城网站建设公司,免费发广告的网站大全,番禺建网站系列文章目录 #xff08;其他设计模式可以到 #x1f449;#x1f449;#x1f449;#xff09;设计模式_小杰不秃头的博客 #x1f60a;#x1f604;#x1f61b; 前言 今天继续给大家介绍23种设计模式中的适配器模式#xff0c;这个模式相比于其他模式比较好理解…系列文章目录 其他设计模式可以到 设计模式_小杰不秃头的博客  前言 今天继续给大家介绍23种设计模式中的适配器模式这个模式相比于其他模式比较好理解我们一起来学习一下吧。 一、什么是适配器模式 适配器模式Adapter Pattern适配器模式是一种结构型设计模式它允许一个类的接口与另一个类的接口不兼容时创建一个中间的类来适配这些不兼容的接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、有哪些应用场景呢 应用场景 旧代码与新代码之间的适配当新代码需要调用旧代码但两者接口不兼容时。多个类具有相似的功能但接口不兼容为了统一接口可以使用适配器模式。使用第三方库当使用的第三方库提供的接口与自己的代码不兼容时。功能增强或扩展当需要为某个类添加额外的功能而这些功能在原始类中并不存在时可以使用适配器模式来创建一个新的适配器类 三、实战案例 我就举一个简单的例子假设我们有一个老式的OldMediaPlayer类它只能播放mp3文件但我们希望它也能播放wav文件。为此我们可以创建一个AudioAdapter类它实现了MediaPlayer接口这是我们想要的新接口并在内部使用OldMediaPlayer类来播放mp3文件同时对于wav文件我们可以使用其他逻辑比如转换成mp3或直接使用其他播放器。 创建OldMediaPlayer类 // 适配者类现有的类需要被适配 public class OldMediaPlayer {public void playMp3(String filename){System.out.println(Playing Mp3 File: filename);} } 接着创建MediaPlayer接口 interface MediaPlayer {void play(String audioType, String fileName); } 最后创建AudioAdapter类 //适配器类在原有OldMediaPlayer 的功能上添加新的功能 public class AudioAdapter implements MediaPlayer{private OldMediaPlayer oldMediaPlayer;public AudioAdapter() {//AudioAdapter创建时实例化OldMediaPlayerthis.oldMediaPlayer new OldMediaPlayer();}Overridepublic void play(String audioType, String fileName) {if (mp3.equalsIgnoreCase(audioType)){oldMediaPlayer.playMp3(fileName);}else if (wav.equalsIgnoreCase(audioType)){//拓展新的播放类型System.out.println(Playing Wav file: fileName );}} } 测试 void test1(){AudioAdapter audioAdapter new AudioAdapter();audioAdapter.play(mp3,小苹果.mp3);audioAdapter.play(wav,小苹果.wav);}/*测试结果Playing Mp3 File:小苹果.mp3Playing Wav file: 小苹果.wav */ 总结 相比到这里大家对适配器模式有了一定的了解那么我们来总结一下它的优缺点 优点 灵活性通过适配器可以轻松地集成来自不同源的类而无需修改它们的源代码。可复用性适配器可以被多个不兼容的类复用。解耦适配器将目标接口和适配者类解耦使得它们可以独立地变化。 缺点 增加系统的复杂性引入适配器可能会使系统更加复杂。代码可能变得难以维护如果适配器过多或者适配器逻辑复杂可能会增加维护的难度。 它的优点很明显但是任何设计模式都有优缺点虽然它能够帮助我们适配新旧功能但是过多使用适配器反而适得其反所以大家在使用设计模式的时候一定要再三考虑。
http://www.w-s-a.com/news/439708/

相关文章:

  • 中山 五金 骏域网站建设专家专门用来制作网页的软件是什么
  • 怎么做刷东西的网站数据分析软件工具有哪些
  • 官方购物网站正品交易网站域名
  • lol网站建设seo 网站太小
  • 网站建设销售职责手机网站制作软件
  • 福州百度企业网站seo如何在电脑上登录wordpress
  • 开发区全力做好网站建设网络广告营销成功案例
  • 114网站建设高并发系统架构
  • php网站打开一片空白wordpress中文广告插件下载
  • 怎样建自己的网站免费的百度关键词排名点击
  • 医院网站建设的特点怎么查看网站百度快照
  • 网站 如何备案一般网站开发公司
  • 做网站的公司 贵阳郑州新像素ui设计培训收费
  • 温州网站建设公司电话给个免费的网址
  • 个人做电子商务网站备案软考高级
  • 淘宝客需要自己做网站吗四川遂宁做网站的公司
  • 编写网站策划书缘魁上海网站建设
  • 梧州外贸网站推广设计wordpress 上传 七牛
  • 增加网站备案千灯做网站
  • 深圳做网站的公php做简易网站
  • 徐州哪家做网站好商业空间设计效果图
  • 重庆建网站cqiezscom大学毕业做网站插画师好吗
  • 在门户网站做产品seo怎么样做网站管理员
  • 动画做视频在线观看网站字体安装+wordpress
  • vs2015网站开发做珠宝建个网站推广怎么样
  • 大桥外语官方网站星做宝贝佛山微信网站开发
  • 河南建设网站公司哪家好怎样做一家网站
  • 安阳市哪里做网站建设网站流量怎么赚钱
  • 网站开发与优化课程总结软件班级网站建设
  • py网站开发wordpress 公司网站 模板 下载