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

给人家做网站服务器自己搭吗html教程推荐

给人家做网站服务器自己搭吗,html教程推荐,一个空间可以建多个网站,京东网站建设策划书在面向对象设计中#xff0c;适配器模式是一种常见的结构型设计模式。它允许将不兼容的接口转换成客户端所期望的另一个接口#xff0c;从而使不同的类协同工作。适配器模式的主要目的是解决不同接口之间的兼容性问题#xff0c;同时也提高了代码的可重用性和灵活性。 问题…在面向对象设计中适配器模式是一种常见的结构型设计模式。它允许将不兼容的接口转换成客户端所期望的另一个接口从而使不同的类协同工作。适配器模式的主要目的是解决不同接口之间的兼容性问题同时也提高了代码的可重用性和灵活性。 问题引入 在软件开发中经常会遇到需要集成不同模块、类或库的情况。然而这些不同的模块可能使用不同的接口导致难以直接协同工作。在这种情况下适配器模式可以派上用场。 适配器模式的构成 适配器模式由以下几个组件组成 目标接口Target Interface 目标接口是客户端所期望的接口适配器将目标接口与被适配的类连接起来。 被适配的类Adaptee 被适配的类是需要适配的类它具有不兼容的接口。 适配器Adapter 适配器是连接目标接口和被适配的类的类。它实现了目标接口并在内部包装了被适配的类的实例以实现接口的转换。 示例应用 假设你正在开发一个音频播放器应用程序其中使用了不同的音频格式如MP3、WAV、FLAC。每种音频格式都有各自的播放方法。现在你想要为应用程序添加一个新的音频格式但这个格式的播放方法与现有格式不同。在这种情况下适配器模式可以派上用场。 实际示例 #mermaid-svg-E4e3Yt4nNoB2EY9F {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-E4e3Yt4nNoB2EY9F .error-icon{fill:#552222;}#mermaid-svg-E4e3Yt4nNoB2EY9F .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-E4e3Yt4nNoB2EY9F .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-E4e3Yt4nNoB2EY9F .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-E4e3Yt4nNoB2EY9F .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-E4e3Yt4nNoB2EY9F .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-E4e3Yt4nNoB2EY9F .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-E4e3Yt4nNoB2EY9F .marker{fill:#333333;stroke:#333333;}#mermaid-svg-E4e3Yt4nNoB2EY9F .marker.cross{stroke:#333333;}#mermaid-svg-E4e3Yt4nNoB2EY9F svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-E4e3Yt4nNoB2EY9F g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-E4e3Yt4nNoB2EY9F g.classGroup text .title{font-weight:bolder;}#mermaid-svg-E4e3Yt4nNoB2EY9F .nodeLabel,#mermaid-svg-E4e3Yt4nNoB2EY9F .edgeLabel{color:#131300;}#mermaid-svg-E4e3Yt4nNoB2EY9F .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-E4e3Yt4nNoB2EY9F .label text{fill:#131300;}#mermaid-svg-E4e3Yt4nNoB2EY9F .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-E4e3Yt4nNoB2EY9F .classTitle{font-weight:bolder;}#mermaid-svg-E4e3Yt4nNoB2EY9F .node rect,#mermaid-svg-E4e3Yt4nNoB2EY9F .node circle,#mermaid-svg-E4e3Yt4nNoB2EY9F .node ellipse,#mermaid-svg-E4e3Yt4nNoB2EY9F .node polygon,#mermaid-svg-E4e3Yt4nNoB2EY9F .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-E4e3Yt4nNoB2EY9F .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F g.clickable{cursor:pointer;}#mermaid-svg-E4e3Yt4nNoB2EY9F g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-E4e3Yt4nNoB2EY9F g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-E4e3Yt4nNoB2EY9F .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-E4e3Yt4nNoB2EY9F .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-E4e3Yt4nNoB2EY9F .dashed-line{stroke-dasharray:3;}#mermaid-svg-E4e3Yt4nNoB2EY9F #compositionStart,#mermaid-svg-E4e3Yt4nNoB2EY9F .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F #compositionEnd,#mermaid-svg-E4e3Yt4nNoB2EY9F .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F #dependencyStart,#mermaid-svg-E4e3Yt4nNoB2EY9F .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F #dependencyStart,#mermaid-svg-E4e3Yt4nNoB2EY9F .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F #extensionStart,#mermaid-svg-E4e3Yt4nNoB2EY9F .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F #extensionEnd,#mermaid-svg-E4e3Yt4nNoB2EY9F .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F #aggregationStart,#mermaid-svg-E4e3Yt4nNoB2EY9F .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F #aggregationEnd,#mermaid-svg-E4e3Yt4nNoB2EY9F .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-E4e3Yt4nNoB2EY9F .edgeTerminals{font-size:11px;}#mermaid-svg-E4e3Yt4nNoB2EY9F :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} adapts AudioPlayer play(audioType, file) Mp3Player playMp3(file) AdvancedAudioPlayer playVlc(file) playMp4(file) VlcPlayer playVlc(file) playMp4(file) VlcPlayerAdapter - advancedAudioPlayer play(audioType, file) // 目标接口音频播放器 interface AudioPlayer {void play(String audioType, String fileName); }// 具体类MP3播放器 class Mp3Player implements AudioPlayer {Overridepublic void play(String audioType, String fileName) {if (audioType.equalsIgnoreCase(mp3)) {System.out.println(Playing MP3 file: fileName);}} }// 适配器接口高级音频播放器 interface AdvancedAudioPlayer {void playVlc(String fileName);void playMp4(String fileName); }// 具体类VLC播放器 class VlcPlayer implements AdvancedAudioPlayer {Overridepublic void playVlc(String fileName) {System.out.println(Playing VLC file: fileName);}Overridepublic void playMp4(String fileName) {// Do nothing} }// 适配器类适配VLC播放器为AudioPlayer class VlcPlayerAdapter implements AudioPlayer {private AdvancedAudioPlayer advancedAudioPlayer;public VlcPlayerAdapter(AdvancedAudioPlayer advancedAudioPlayer) {this.advancedAudioPlayer advancedAudioPlayer;}Overridepublic void play(String audioType, String fileName) {if (audioType.equalsIgnoreCase(vlc)) {advancedAudioPlayer.playVlc(fileName);}} }public class Main {public static void main(String[] args) {AudioPlayer audioPlayer new Mp3Player();audioPlayer.play(mp3, song.mp3);AdvancedAudioPlayer vlcPlayer new VlcPlayer();AudioPlayer vlcAdapter new VlcPlayerAdapter(vlcPlayer);vlcAdapter.play(vlc, movie.vlc);} } 结论 适配器模式是一个强大的工具可以在不改变现有代码的情况下让不兼容的类和接口协同工作。它提供了一种有效的方式来集成不同的模块和组件从而提高了代码的可维护性和扩展性。 适配器模式的应用不仅仅局限于音频播放器它可以在各种场景中发挥作用特别是在需要集成第三方库、遗留代码或不同版本组件的情况下。 在设计和开发中了解适配器模式的原理和用法将使你能够更好地解决接口兼容性问题实现代码的灵活和可维护性。
http://www.hkea.cn/news/14428305/

相关文章:

  • 甘肃省交通建设项目招投标中心网站网站开发合作合同
  • 做视频在哪个网站找素材怎么制做网站
  • 降低做百度手机网站优化点
  • 好的网站建设公司杭州网站公司哪家服务好
  • 中国能源建设股份有限公司新网站园区门户网站建设
  • 用python做 网站论坛三原网站建设
  • 网站建设功能介绍保定网站建设的过程
  • 十堰百度网站建设c 转网站开发
  • 有没有什么排版的网站基于 wordpress
  • 做模型找三视图那些网站如何利用网络广告进行推广
  • 天水建设银行网站青海公路建设信息服务网站
  • 化工网站建站模板下载免费制作音乐的软件app
  • 网站对联模板友汇网网站建设
  • 网站编排物流托运
  • 电子商务网站建设的核心多选wordpress 网盘 插件
  • 佳城建站 网站做会计公司网站的目录
  • 珠宝首饰商城网站建设无网站网络营销
  • 网站维护费进入哪个科目19年做哪个网站致富
  • flash 如何做游戏下载网站wordpress幻灯片链接
  • 网站建设夬金手指排名壹柒wordpress登陆页插件面
  • 钢管网站模板网站信息安全保障制度建设情况
  • 网站前台设计工具wordpress表单样式
  • 成都网站seo推广今天北京感染了多少人
  • 羊肉口报关做网站wordpress一键生成
  • 辽宁建设工程信息网官网新网站如何进入旅游电子商务网站开发项目进度表
  • 服务器搭建网站域名配置运城小程序开发公司
  • 咸宁网站seo怎样做能直接上传微信的视频网站
  • 北京公司网站制作流程做海外网站交税吗
  • 学校网站建设需求文档中建海峡建设发展有限公司网站
  • dw网站制作的源代码网站建设智能优化