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

绿色电器公司网站psd模板网站优化的方式有哪些

绿色电器公司网站psd模板,网站优化的方式有哪些,特色的佛山网站建设,嵌入式软件开发介绍适配器模式 适配器模式(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.yayakq.cn/news/426865/

相关文章:

  • 安徽建筑大学学工在线网站网站建设论文 php
  • 网站后台设计培训学校外包加工平台
  • 千户微建站平台wordpress 中文 模板下载
  • wordpress仿站价格响应式网站模板怎么做
  • 宁波做网站优化的公司移动分销系统代理
  • php+mysql网站开发技术与典型案例导航【源代码】广州网站建设网站推广
  • 龙华高端网站设计中山模板建站公司
  • 做网站桂林wordpress优化提速
  • 住房和城乡建设部网站行标编程是学什么东西的
  • 建设官方网站怎么登录全国企业工商信息查询官网
  • 建设网站需要几部分优化营商环境心得体会1000字
  • 封装系统如何做自己的网站重庆网络营销网站建设销售
  • 潍坊最早做网站的公司wordpress添加logo
  • 张店网站建设价网站备案查询不了
  • 做公众号封面网站2023北京又开始核酸了吗今天
  • 东莞皮具网站建设网络舆情监测适合女生嘛
  • 上海网站推广模板宁波seo外包公司
  • 贵阳搜索玩的网站菜鸟教程网站怎么做
  • 有哪些做兼职的网站萧县做网站
  • 百度的合作网站有哪些wordpress 询价记录
  • 网站建设方案新闻做网站费用分摊入什么科目
  • 没有网站如何做SEO推广有用吗做社区网站怎么做
  • 北京网站建设解决方案蚌埠seo公司
  • 相应式网站网站外链代发
  • 浙江省建设项目招投标网站酷站
  • win网站建设网站地图设计
  • 学校让做网站做完怎么交wordpress弹窗视频播放插件
  • 开发网站的基本原则wordpress走阿里云OSS内网
  • 虚拟机中做网站品牌服装网站源码
  • 效果好的魔站建站系统网站开发案例php