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

商标设计网站哪个好音乐网站要怎么做

商标设计网站哪个好,音乐网站要怎么做,wordpress区块链游戏,买app的网站建设Go和Java实现适配器模式 我们通过下面的实例来演示适配器模式的使用#xff0c;其中#xff0c;音频播放器设备只能播放 mp3 文件#xff0c;通过使用一个更高级 的音频播放器来播放 vlc 和 mp4 文件。 1、适配器模式 适配器模式是作为两个不兼容的接口之间的桥梁。这种…Go和Java实现适配器模式 我们通过下面的实例来演示适配器模式的使用其中音频播放器设备只能播放 mp3 文件通过使用一个更高级 的音频播放器来播放 vlc 和 mp4 文件。 1、适配器模式 适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式它结合了两个独立接口的 功能。 这种模式涉及到一个单一的类该类负责加入独立的或不兼容的接口功能。举个真实的例子读卡器是作为内存卡 和笔记本之间的适配器。您将内存卡插入读卡器再将读卡器插入笔记本这样就可以通过笔记本来读取内存卡。 意图将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作 的那些类可以一起工作。 主要解决主要解决在软件系统中常常要将一些现存的对象放到新的环境中而新环境要求的接口是现对 象不能满足的。 何时使用1、系统需要使用现有的类而此类的接口不符合系统的需要。 2、想要建立一个可以重复使用的 类用于与一些彼此之间没有太大关联的一些类包括一些可能在将来引进的类一起工作这些源类不一定有 一致的接口。 3、通过接口转换将一个类插入另一个类系中。比如老虎和飞禽现在多了一个飞虎在不 增加实体的需求下增加一个适配器在里面包容一个虎对象实现飞的接口。 如何解决继承或依赖推荐。 关键代码适配器继承或依赖已有的对象实现想要的目标接口。 应用实例1、美国电器 110V中国 220V就要有一个适配器将 110V 转化为 220V。 2、JAVA JDK 1.1 提供 了 Enumeration 接口而在 1.2 中提供了 Iterator 接口想要使用 1.2 的 JDK则要将以前系统的 Enumeration 接口转化为 Iterator 接口这时就需要适配器模式。 3、在 LINUX 上运行 WINDOWS 程序。 4、JAVA 中的 jdbc。 优点1、可以让任何两个没有关联的类一起运行。 2、提高了类的复用。 3、增加了类的透明度。 4、灵活性 好。 缺点1、过多地使用适配器会让系统非常零乱不易整体进行把握。比如明明看到调用的是 A 接口其 实内部被适配成了 B 接口的实现一个系统如果太多出现这种情况无异于一场灾难。因此如果不是很有必 要可以不使用适配器而是直接对系统进行重构。 2.由于 JAVA 至多继承一个类所以至多只能适配一个适 配者类而且目标类必须是抽象类。 使用场景有动机地修改一个正常运行的系统的接口这时应该考虑使用适配器模式。 注意事项适配器不是在详细设计时添加的而是解决正在服役的项目的问题。 适用性 你想使用一个已经存在的类而它的接口不符合你的需求。 你想创建一个可以复用的类该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协 同工作。 (仅适用于对象Adapter)你想使用一些已经存在的子类但是不可能对每一个都进行子类化以匹配它们的接 口对象适配器可以适配它的父类接口。 2、Go实现适配器模式 package adapter// adapter type MediaPlayerAdapter interface {Play(string) }package adapterimport fmt// mp3 type Mp3Player struct { }func (mp3Player *Mp3Player) PlayMp3(fileName string) {fmt.Println(Playing Mp3 File: , fileName) }package adapter// mp3 adapter type Mp3PlayerAdapter struct {Mp3Player }func (mp3PlayerAdapter *Mp3PlayerAdapter) Play(fileName string) {mp3PlayerAdapter.Mp3Player.PlayMp3(fileName) }package adapterimport fmt// mp4 type Mp4Player struct { }func (mp4Player *Mp4Player) PlayMp4(fileName string) {fmt.Println(Playing Mp4 File: , fileName) }package adapter// mp4 adapter type Mp4PlayerAdapter struct {Mp4Player }func (mp4PlayerAdapter *Mp4PlayerAdapter) Play(fileName string) {mp4PlayerAdapter.Mp4Player.PlayMp4(fileName) }package adapterimport fmt// vlc type VlcPlayer struct { }func (vlcPlayer *VlcPlayer) PlayVlc(fileName string) {fmt.Println(Playing Vlc File: , fileName) }package adapter// vlc adapter type VlcPlayerAdapter struct {VlcPlayer }func (vlcPlayerAdapter *VlcPlayerAdapter) Play(fileName string) {vlcPlayerAdapter.VlcPlayer.PlayVlc(fileName) }package constantconst (Mp3 mp3Mp4 mp4Vlc vlc )package adapterimport (proj/constant )// adapter factory type PlayerFactory struct { }func (playerFactory *PlayerFactory) CreatePlayerAdapter(playerType string) MediaPlayerAdapter {switch playerType {case constant.Mp3:return Mp3PlayerAdapter{Mp3Player: Mp3Player{}}case constant.Mp4:return Mp4PlayerAdapter{Mp4Player: Mp4Player{}}case constant.Vlc:return VlcPlayerAdapter{VlcPlayer: VlcPlayer{}}}return nil }package mainimport (. proj/adapterproj/constant )func main() {// 工厂类playerFactory : PlayerFactory{}// mp3mp3PlayerAdapter : playerFactory.CreatePlayerAdapter(constant.Mp3)// Playing Mp3 File: qs.mp3mp3PlayerAdapter.Play(qs.mp3)// mp4mp4PlayerAdapter : playerFactory.CreatePlayerAdapter(constant.Mp4)// Playing Mp4 File: qs.mp4mp4PlayerAdapter.Play(qs.mp4)// vlcvlcPlayerAdapter : playerFactory.CreatePlayerAdapter(constant.Vlc)// Playing Vlc File: qs.vlcvlcPlayerAdapter.Play(qs.vlc)}下面再实现一个例子对适配器模式进行介绍。 笔记本通过读卡器去读取 TF 卡和 SD 卡。 package adapter// SDCard type SDCard interface {ReadSD() }package adapterimport fmt// SDCardImpl type SDCardImpl struct { }func (sDCardImpl *SDCardImpl) ReadSD() {fmt.Println(sdcard read msg!) }package adapter// TFCard type TFCard interface {ReadTF() }package adapterimport fmt// TFCardImpl type TFCardImpl struct { }func (tFCardImpl *TFCardImpl) ReadTF() {fmt.Println(tfcard read msg!) }package adapter// SDAdapterTF || SDCardImpl type SDAdapterTF struct {TFCard }func (sDAdapterTF *SDAdapterTF) ReadSD() {sDAdapterTF.TFCard.ReadTF() }package adapter// Computer type Computer interface {ReadSD(SDCard) }package adapter// ComputerImpl type ComputerImpl struct { }func (computerImpl *ComputerImpl) ReadSD(sDCard SDCard) {sDCard.ReadSD() }package mainimport . proj/adapterfunc main() {computer : ComputerImpl{}// sdcard// sdcard read msg!computer.ReadSD(SDCardImpl{})sDAdapterTF : SDAdapterTF{TFCard: TFCardImpl{}}// tfcard// tfcard read msg!computer.ReadSD(sDAdapterTF) }3、Java实现适配器模式 package com.adapter;// adapter public interface MediaPlayerAdapter {void play(String fileName); }package com.adapter;// mp3 public class Mp3Player {public void playMp3(String fileName){System.out.println(Playing Mp3 File: fileName);} }package com.adapter;// mp3 adapter public class Mp3PlayerAdapter implements MediaPlayerAdapter {private Mp3Player mp3Player new Mp3Player();Overridepublic void play(String fileName) {mp3Player.playMp3(fileName);} }package com.adapter;// mp4 public class Mp4Player {public void playMp4(String fileName){System.out.println(Playing Mp4 File: fileName);} }package com.adapter;// mp4 adapter public class Mp4PlayerAdapter implements MediaPlayerAdapter{private Mp4Player mp4Player new Mp4Player();Overridepublic void play(String fileName) {mp4Player.playMp4(fileName);} }package com.adapter;// vlc public class VlcPlayer {public void PlayVlc(String fileName){System.out.println(Playing Vlc File: fileName);} }package com.adapter;// vlc adapter public class VlcPlayerAdapter implements MediaPlayerAdapter{private VlcPlayer vlcPlayer new VlcPlayer();Overridepublic void play(String fileName) {vlcPlayer.PlayVlc(fileName);} }package com.adapter;public enum PlayerType {MP3, MP4, VLC; }package com.adapter;// adapter factory public class PlayerFactory {public MediaPlayerAdapter createPlayerAdapter(PlayerType playerType){switch (playerType){case MP3:return new Mp3PlayerAdapter();case MP4:return new Mp4PlayerAdapter();case VLC:return new VlcPlayerAdapter();}return null;} }package com.adapter;public class Test {public static void main(String[] args) {MediaPlayerAdapter mediaPlayerAdapter;// 工厂类PlayerFactory playerFactory new PlayerFactory();// mp3mediaPlayerAdapter playerFactory.createPlayerAdapter(PlayerType.MP3);// Playing Mp3 File: sq.mp3mediaPlayerAdapter.play(sq.mp3);// mp4mediaPlayerAdapter playerFactory.createPlayerAdapter(PlayerType.MP4);// Playing Mp4 File: sq.mp4mediaPlayerAdapter.play(sq.mp4);// vlcmediaPlayerAdapter playerFactory.createPlayerAdapter(PlayerType.VLC);// Playing Vlc File: sq.vlcmediaPlayerAdapter.play(sq.vlc);} }下面再实现一个例子对适配器模式进行介绍。 笔记本通过读卡器去读取 TF 卡和 SD 卡。 package com.adapter;// SDCard public interface SDCard {void readSD(); }package com.adapter;// SDCardImpl public class SDCardImpl implements SDCard {Overridepublic void readSD() {System.out.println(sdcard read msg!);} }package com.adapter;// TFCard public interface TFCard {void readTF(); }package com.adapter;// TFCardImpl public class TFCardImpl implements TFCard{Overridepublic void readTF() {System.out.println(tfcard read msg!);} }package com.adapter;// SDAdapterTF || SDCardImpl public class SDAdapterTF implements SDCard{private TFCard tfCard new TFCardImpl();Overridepublic void readSD() {tfCard.readTF();} }package com.adapter;// Computer public interface Computer {void readSD(SDCard sdCard); }package com.adapter;// ComputerImpl public class ComputerImpl implements Computer{Overridepublic void readSD(SDCard sdCard) {sdCard.readSD();} }package com.adapter;public class Test {public static void main(String[] args) {Computer computer new ComputerImpl();// sdcardSDCard sdCard new SDCardImpl();// sdcard read msg!computer.readSD(sdCard);// tfcardSDAdapterTF sdAdapterTF new SDAdapterTF();// tfcard read msg!computer.readSD(sdAdapterTF);} }
http://www.hkea.cn/news/14472668/

相关文章:

  • 如何根据仿站做网站网站建设需求调研
  • 广东专业做网站一般网站服务器
  • 网站推广方式推荐怎么样才能申请网址
  • 福建石狮有做网站的没本地模拟wordpress
  • 国外企业网站案例用php做的网站模版
  • 谷城网站快速排名查询食品注册商标查询官网
  • 有没有发布需求的网站近一周热点新闻
  • 中国小康建设官方网站做社区网站用什么程序
  • 做网站需要雇什么人哪家公司做的网站好
  • 网站开发人员叫什么wordpress怎么设置404伪静态
  • 怎么将网站做成公司官网wordpress google 地图插件
  • 电商 网站 降低 跳出率 措施 效果免费网站制造
  • 搭建网站不用服务器吗网页设计图片显示不出来
  • 网站dns解析免费做手机网站
  • 怎么添加网站关键词互联网信息平台
  • 网站模板制作教程郑州建站以来
  • 哪里做公司网站比较好网页设计培训推荐
  • 做网站怎么注册域名腾讯云10g数字盘做网站够么
  • 潮州seo建站saas系统
  • 个人网站用什么建站程序书法网站建站目标
  • 淘客做网站有必要吗济南做网站优化价格
  • 自己做网站跟域名怎样做阿里云域名价格
  • vs2013如何做网站男科医院和正规医院哪家好
  • 都江堰网站建设公司海外购物网站排名
  • 怎样在建设部网站查资质证书猪八戒网站做软件
  • 比较有特色的网站长沙网红打卡点
  • 怎么做自己的免费网站seo教程视频
  • 什么网站教人做3d效果图惠州手工外发加工网
  • 没技术怎么做网站江苏高效网站制作机构
  • 国内永久免费建站上海的所有公司