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

做网站怎么找客户联系方式软件实施工程师

做网站怎么找客户联系方式,软件实施工程师,织梦网站首页目录在哪,济南seo外包服务文章目录 1、适配器模式2、举例 1、适配器模式 适配器模式Adapter Pattern,是做为两个不兼容的接口之间的桥梁目的是将一个类的接口转换成客户希望的另外一个接口适配器模式可以使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 最后,适配器…

文章目录

  • 1、适配器模式
  • 2、举例

1、适配器模式

  • 适配器模式Adapter Pattern,是做为两个不兼容的接口之间的桥梁
  • 目的是将一个类的接口转换成客户希望的另外一个接口
  • 适配器模式可以使得原本由于接口不兼容而不能一起工作的那些类可以一起工作

最后,适配器是对已经开发完的系统的一种改造思路,新设计尽量一次设计好,或者时间充裕就重构。适配器太多会使得系统很乱,看着在调A接口,底下已被适配到了B接口。

2、举例

背景:有两个接口,分别为媒体播放器(播放音频)、高级媒体播放器(播放视频)。创建适配器,将二者的功能融合。两个接口:

/*** 高级媒体播放器* 可播放视频*/
public interface AdvanceMediaPlayer {public void playVlc(String fileName);public void playMp4(String fileName);
}
/*** 媒体播放器接口* 可播放音频*/
public interface MediaPlayer {public void play(String audioType, String fileName);
}

写高级媒体播放器的实现类:

public class Mp4Player implements AdvanceMediaPlayer{@Overridepublic void playVlc(String fileName) {当前格式为mp4格式,对vlc的播放不做具体实现}@Overridepublic void playMp4(String fileName) {System.out.println("播放Mp4文件:" + fileName);}
}
public class VlcPlayer implements AdvanceMediaPlayer{@Overridepublic void playVlc(String fileName) {System.out.println("播放vlc文件:" + fileName);}@Overridepublic void playMp4(String fileName) {//当前格式为vlc格式,对mp4的播放不做具体实现}
}

创建适配器,注入待合并的那个接口的对象。自定义有参构造方法,并对待合并接口对象完成初始化赋值:

public class MediaPlayerAdapter implements MediaPlayer {private AdvanceMediaPlayer advanceMediaPlayer;/*** 定义个有参的构造方法,形参为自定义的String类型* @param audioType 媒体文件类型*/public MediaPlayerAdapter(String audioType) {if ("vlc".equalsIgnoreCase(audioType)) {advanceMediaPlayer = new VlcPlayer();} else if ("mp4".equalsIgnoreCase(audioType)) {advanceMediaPlayer = new Mp4Player();}}@Overridepublic void play(String audioType, String fileName) {//判断当前媒体的格式是mp4还是vlcif ("vlc".equalsIgnoreCase(audioType)) {//播放vlc文件advanceMediaPlayer.playVlc(fileName);} else if ("mp4".equalsIgnoreCase(audioType)) {//播放mp4文件advanceMediaPlayer.playMp4(fileName);}}
}

到此,适配器拥有了待合并接口所有实现类的功能。写另一个接口媒体播放器的实现类,里面注入适配器对象,如果是音频,则实现类正常完成,如果是视频,则通过适配器完成:

public class AudioPlayer implements MediaPlayer {private MediaPlayerAdapter adapter;@Overridepublic void play(String audioType, String fileName) {//音频文件,比如mp3if ("mp3".equalsIgnoreCase(audioType)) {System.out.println("播放mp3文件:" + fileName);} else if ("vlc".equalsIgnoreCase(audioType) || "mp4".equalsIgnoreCase(audioType)) {//视频文件(高级媒体文件)adapter = new MediaPlayerAdapter(audioType);adapter.play(audioType, fileName);     //到此,完成了两个接口的适配,不管是音频还是视频,我这儿都能播放}}
}

到此,完成合并,测试类:

public class Test {public static void main(String[] args) {AudioPlayer audioPlayer = new AudioPlayer();audioPlayer.play("mp3", "啦啦啦.mp3");audioPlayer.play("vlc", "喜羊羊.vlc");audioPlayer.play("mp4", "视频.mp4");}
}

在这里插入图片描述

http://www.yayakq.cn/news/109509/

相关文章:

  • 如何建设一个新的网站传媒公司注册需要什么条件
  • 内江市住房和城乡建设局网站腾讯企业邮箱登录入口网页版入口
  • 沈阳网站制作找网势科技ai智能写作网站
  • 网站备案时间太长重庆网红景点洪崖洞已挤满游客
  • 怎么做hello官方网站wordpress无编辑器
  • 使用vue做的购物网站广东卫视你会怎么做网站
  • 关于我校校园网站建设的调研报告便宜网站建设怎么样
  • 绵阳住房和城乡建设厅官方网站单位网站源码
  • 学校网站设计的目的外贸网站运营怎么做
  • 做国际物流需要哪些网站深圳集团网站建设企业
  • 桥梁建设杂志有假网站吗深圳建设银行分行网站
  • ps网站建设设计石家庄住房城乡建设厅网站
  • 怎样把网站上传到服务器上劳动保障局瓯海劳务市场和做网站
  • 东营伟浩建设集团网站百度免费推广平台
  • 新加坡网站开发公司出名的网站制作正规公司
  • 响应式 学校网站模板甘肃省两学一做专题网站
  • 有没有做黑市网站昆明参差网站
  • 设计师服务平台台举例说明seo
  • 关于配色的网站推荐烟台h5网站开发
  • 做网站的时候遇到的问题辽宁省城乡建设厅网站
  • 关于设计的网站监理工程师成绩在建设部哪个网站查
  • 南宁公司网站开发阿里云服务器如何实现一个空间绑定两个不同主体的网站
  • 重庆营销网站建设项目网格图
  • 网站设计 做鼠标效果做淘宝店铺装修的公司网站
  • 深圳网站建设计乐清网站制作推荐
  • 济宁住房和城乡建设厅网站wordpress 数据库搜索功能
  • 简述网站开发的几个步骤网站asp源码
  • 基于asp的网络课程网站开发三个小伙毕业了做购物网站的电视剧
  • 网站防止挂马应该怎么做seo诊断大夫
  • 工程造价询价网站四川建设厅的网站