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

app开发哪家好公司承德seo

app开发哪家好公司,承德seo,婚恋交友网站制作,外网访问wordpress全站路径设置适配器模式 适配器模式(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.mmbaike.com/news/27792.html

相关文章:

  • wordpress get_queried_object百度地图优化排名方法
  • 建设实验中心网站武汉百度推广入口
  • 网站建设 乐清网络公司品牌策划方案范文
  • vs网站开发源码西安seo学院
  • wordpress 小说站主题如何免费推广网站
  • 四川省住房建设厅网站打不开人民网 疫情
  • 手游网站怎么做河南seo推广
  • 怎么在网站上做排名营销网站建设方案
  • 网站的线下推广怎么做谷歌建站
  • 做游戏视频网站最近刚发生的新闻
  • 智慧团建登录手机版正式版兰州正规seo整站优化
  • 西安演出公司网站建设2019年 2022疫情爆发
  • c 网站开发案例详解酒店营销策划与运营
  • 郑州专业网站制作服务费用seo搜狗
  • 做网站引流seo搜索排名优化方法
  • 磐石市住房和城乡建设局网站生成关键词的软件
  • 各类网站规划竞价运营是做什么的
  • 天津做流产五洲网站营销推广策划方案
  • 关于做奶妈的视频网站seo优化快排
  • 网站建设问答西安网络推广seo0515
  • 建网站岑溪哪家强?网站技术外包公司
  • 西安cms建站互联网营销师证书骗局
  • 给孩子做衣服的网站如何做企业网站
  • 网站建设费用要求营销型网站建设推荐
  • 长春网站建设兼职建筑设计网站
  • 东莞网站建设百度地图现在推广引流什么平台比较火
  • 网站制作网页设计网络舆情管控
  • 深圳网站开发公司今日最新国内新闻
  • 湖南网站开发b站2020推广网站
  • 南通装修网站大全seo关键词优化排名外包