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

企业进行网站建设的方式有seo外包如何

企业进行网站建设的方式有,seo外包如何,wordpress ifttt,优秀网页设计作品案例欣赏适配器模式 适配器模式是一种结构型设计模式,其主要作用是解决两个不兼容接口之间的兼容性问题。适配器模式通过引入一个适配器来将一个类的接口转换成客户端所期望的另一个接口,从而让原本由于接口不匹配而无法协同工作的类能够协同工作。 结构 适配…

适配器模式

适配器模式是一种结构型设计模式,其主要作用是解决两个不兼容接口之间的兼容性问题。适配器模式通过引入一个适配器来将一个类的接口转换成客户端所期望的另一个接口,从而让原本由于接口不匹配而无法协同工作的类能够协同工作。

结构

适配器模式(Adapter)包含以下主要角色:

  • 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。
  • 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
  • 适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。

图例:

在这里插入图片描述

AudioPlayer实现了 MediaPlayer 接口,只可以播放 mp3 。实现了 AdvancedMediaPlayer 接口的类则可以播放 vlc 和 mp4 格式的文件。可以创建一个实现了 MediaPlayer 接口的适配器类 MediaAdapter,并使用 AdvancedMediaPlayer 的实现类对象来播放所需的格式。AdapterPatternDemo 类则可以使用 AudioPlayer 类来播放各种格式的音频。

对象适配器模式代码案例:

// 目标接口
interface MediaPlayer {void play(String audioType, String filename);  
}// 适配器接口
interface AdvancedMediaPlayer {void playVlc(String filename);void playMp4(String filename);
}// 适配器类
class MediaAdapter implements MediaPlayer {private AdvancedMediaPlayer advancedMediaPlayer;public MediaAdapter(String audioType) {if (audioType.equalsIgnoreCase("vlc")) {advancedMediaPlayer = new VlcPlayer();} else if (audioType.equalsIgnoreCase("mp4")) {advancedMediaPlayer = new Mp4Player();}}@Overridepublic void play(String audioType, String filename) {if (audioType.equalsIgnoreCase("vlc")) {advancedMediaPlayer.playVlc(filename);} else if (audioType.equalsIgnoreCase("mp4")) {advancedMediaPlayer.playMp4(filename);}}
}// 具体实现类
class AudioPlayer implements MediaPlayer {MediaAdapter mediaAdapter;@Overridepublic void play(String audioType, String filename) {if (audioType.equalsIgnoreCase("mp3")) {System.out.println("Playing mp3 file. Name: " + filename);} else if (audioType.equalsIgnoreCase("vlc") || audioType.equalsIgnoreCase("mp4")) {mediaAdapter = new MediaAdapter(audioType);mediaAdapter.play(audioType, filename);} else {System.out.println("Invalid media. " + audioType + " format not supported");}}
}class VlcPlayer implements AdvancedMediaPlayer {@Overridepublic void playVlc(String filename) {System.out.println("Playing vlc file. Name: " + filename);}@Overridepublic void playMp4(String filename) {// Do nothing}
}class Mp4Player implements AdvancedMediaPlayer {@Overridepublic void playVlc(String filename) {// Do nothing}@Overridepublic void playMp4(String filename) {System.out.println("Playing mp4 file. Name: " + filename);}
}// 使用示例
public class Main {public static void main(String[] args) {AudioPlayer audioPlayer = new AudioPlayer();audioPlayer.play("mp3", "song.mp3");audioPlayer.play("vlc", "movie.vlc");audioPlayer.play("mp4", "video.mp4");}
}

适配器模式有类适配器模式和对象适配器模式;这里使用对象适配器模式主要是类适配器模式违背了合成复用原则,它限制了适配器类只能适配一个具体的被适配者类。且Java 不支持多重继承,因此在 Java 中一般使用接口来实现类似的功能

比如下面类适配器,采用的是继承:

// 适配器类(类适配器)
class MediaAdapter extends Mp4Player implements MediaPlayer { @Overridepublic void play(String audioType, String filename) {if (audioType.equalsIgnoreCase("vlc")) {playVlc(filename);} else if (audioType.equalsIgnoreCase("mp4")) {playMp4(filename);}}
}

当然,也有接口适配器模式,不过使用相对较少。当一个接口拥有许多方法,但实现类只需要实现其中一部分方法时,可以使用接口适配器模式,提供一个抽象适配器类实现该接口,并提供默认实现,从而避免实现类需要实现大量空方法。

使用场景:

  • 当需要使用一个已经存在的类,但是它的接口不符合当前需求时,可以考虑使用适配器模式。
  • 当需要复用一些已经存在的类,但是接口与其他类不兼容时,可以考虑使用适配器模式。
  • 当需要创建一个可复用的类,该类可以与不相关或不可预见的类协同工作时,可以考虑使用适配器模式。
http://www.yayakq.cn/news/274318/

相关文章:

  • 求好的设计网站企业网站免费模板
  • 门户网站开发介绍如何把网站转换成wap站点
  • 返利淘网站怎么做wordpress登录手机版
  • 自己接私单网站开发台州本地做网站的
  • 外国人搞笑做视频网站权威的广州h5网站
  • 网站空间代理加盟网站seo报告
  • 移动端网站怎么布局网站建设与规划实训总结
  • 合肥品牌网站建设北京知名大公司有哪些
  • 关于拳馆网站建设计划书wordpress微博主题
  • 深圳工业设计工资沧州seo公司
  • 怎么建立自己企业网站重庆seo公司怎么样
  • 网站建设招聘系统WordPress微博图片
  • 网站调用字体温州网站建设公司排名
  • 阿里云做淘宝客网站吗免费广告在线制作
  • 手机网站弹出层插件有哪些网站上内容列表怎么做
  • 做配音任务的网站做网站要的软件
  • 国内做性视频网站沧州商贸行业网站建设
  • 外贸seo网站搭建html5下载教程
  • 常州手机网站开发找代做海报的网站
  • 我的班级网站模板室内设计公司排名全球
  • 电子商务网站建设课外实训网站二次开发
  • 做网站用ui好还是ps抖音运营推广
  • php安防企业网站源码成都专业建网站
  • 可信网站认证必须做吗精美的微网站
  • 怎样把网站做的高大上谷歌浏览器不支持wordpress插件
  • 重庆网站推广解决方案wordpress小说连载插件
  • 有哪些做笔译的网站vue做的网站大全
  • 国外html5网站建设研究现状如何做电子商务网站
  • 校园网站建设的意见与建议十大免费软文推广平台
  • 网站模板怎么弄毕业设计做音乐网站可以吗