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

手机网站演示seo诊断工具

手机网站演示,seo诊断工具,文化网站模版,零基础如何做电商适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 优缺点 优点: 单一职责原则。你可以将接口或数据转换代码从程序主要业务逻辑中分…

适配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。

优缺点

优点:
  • 单一职责原则。你可以将接口或数据转换代码从程序主要业务逻辑中分离。
  • 开闭原则。只要客户端代码通过客户端接口与适配器进行交互, 你就能在不修改现有客户端代码的情况下在程序中添加新类型的适配器。
缺点
  • 代码整体复杂度增加, 因为你需要新增一系列接口和类。 有时直接更改服务类使其与其他代码兼容会更简单。

应用实例

普通音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。

代码实现

类适配器:基于继承方式

  1. 为普通音频播放器和更高级的音频播放器创建接口。
public interface MediaPlayer {void play(String type, String name);
}
public interface AdvancedMediaPlayer {void playMp4(String name);void playVlc(String name);
}
  1. 创建 AdvancedMediaPlayer 接口的实现类。
public class AdvancedPlayer implements AdvancedMediaPlayer {@Overridepublic void playMp4(String name) {System.out.println("play mp4 " + name);}@Overridepublic void playVlc(String name) {System.out.println("play vlc " + name);}
}
  1. 创建 MediaPlayer 接口的适配器类。
public class MediaAdapter extends AdvancedPlayer implements MediaPlayer {@Overridepublic void play(String type, String name) {if ("mp3".equals(type)){System.out.println("play mp3 " + name);}else if ("mp4".equals(type)){super.playMp4(name);}else if ("vlc".equals(type)){super.playVlc(name);}else {System.out.println("not supported");}}
}
  1. 使用 MediaAdapter 来播放不同类型的音频格式。
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");}
}
  1. 执行程序,输出结果
    在这里插入图片描述

对象适配器:基于组合

  1. 为普通音频播放器和更高级的音频播放器创建接口。
public interface MediaPlayer {void play(String type, String name);
}
public interface AdvancedMediaPlayer {void playMp4(String name);void playVlc(String name);
}
  1. 创建 AdvancedMediaPlayer 接口的实现类。
public class Mp4Player implements AdvancedMediaPlayer{@Overridepublic void playMp4(String name) {System.out.println("play mp4 " + name);}@Overridepublic void playVlc(String name) {}
}
public class VlcPlayer implements AdvancedMediaPlayer{@Overridepublic void playMp4(String name) {}@Overridepublic void playVlc(String name) {System.out.println("play vlc " + name);}
}
  1. 创建 MediaPlayer 接口的适配器类。
public class MediaAdapter implements MediaPlayer{private AdvancedMediaPlayer advancedMediaPlayer;public MediaAdapter(String type){if ("mp4".equals(type)){advancedMediaPlayer = new Mp4Player();}else if ("vlc".equals(type)){advancedMediaPlayer = new VlcPlayer();}}@Overridepublic void play(String type, String name) {if ("mp4".equals(type)){advancedMediaPlayer.playMp4(name);}else if ("vlc".equals(type)){advancedMediaPlayer.playVlc(name);}}
}
  1. 创建 MediaPlayer 接口的实现类。
public class AudioPlayer implements MediaPlayer{// 创建适配器private MediaAdapter mediaAdapter;@Overridepublic void play(String type, String name) {if ("mp3".equals(type)){System.out.println("play mp3 " + name);}else if ("mp4".equals(type) || "vlc".equals(type)){mediaAdapter = new MediaAdapter(type);mediaAdapter.play(type,name);}else {System.out.println("not supported");}}
}
  1. 使用 AudioPlayer 来播放不同类型的音频格式。
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");}
}
  1. 执行程序,输出结果
    在这里插入图片描述
http://www.dinnco.com/news/7901.html

相关文章:

  • 湖南网站建设公司 真好磐石网络googleplay官方下载
  • 域名购买哪个网站好2020国内十大小说网站排名
  • 旅游网站哪家好又便宜网络营销毕业论文8000字
  • 网站维护是什么样品牌网络推广外包
  • 网站建设的概念电话投放小网站
  • 免费个人简历模板下载免费上海关键词优化外包
  • html注册登录界面代码杭州优化公司在线留言
  • 新疆做网站找谁微营销系统
  • 无上光东莞网站北京网站制作推广
  • 大连网站制作最好的公司小红书广告投放平台
  • 太原市免费网站建设天津关键词优化网站
  • wordpress批量提交rssseo优化网站优化
  • 视频网站前台怎么做产品推广策划
  • wordpress菜单栏不显示不出来网站优化方案怎么写
  • 深圳建立网站百度百科词条
  • 网站建设环境分析优化大师app下载
  • 数字营销 h5 网站开发安徽网络关键词优化
  • 做律师网站推广优化哪家好泰安网站优化公司
  • 双流区的规划建设局网站哪个推广平台推广最靠谱
  • 厦门双瑞高磁网站是谁做的seo快速排名外包
  • 来宾网站优化厦门网站seo
  • 日本做a的动画视频在线观看网站杭州网络排名优化
  • 南宁市做网站常用的关键词挖掘工具有哪些
  • 义乌外发饰品加工网sem优化是什么
  • 建设一个视频网站己182345网址导航浏览器下载
  • 如何做网站的维护147seo工具
  • 一般产地证去哪个网站做沈阳全网推广公司哪家好
  • 国外网站建设的发展软媒win7优化大师
  • wordpress连接微博 破解aso优化软件
  • 淄博 做网站湖南知名网络推广公司