91免费成人_黄色免费在线视频网站_亚洲精品九九_国产成人精品一区二区三区网站观看_www超碰在线_91久久精品久久国产性色也91

设计模式-适配器模式

适配器模式是一种结构型设计模式,它用于将一个类的接口转换成另一个接口,以便于两个不兼容的接口能够一起


(相关资料图)

适配器模式是一种结构型设计模式,它用于将一个类的接口转换成另一个接口,以便于两个不兼容的接口能够一起工作。适配器模式有时也被称为包装器模式。

适配器模式包含以下角色:

目标接口(Target Interface):定义客户端所需的接口,这是客户端代码调用的接口。适配器(Adapter):适配器是一个类,它实现目标接口并且包含一个对被适配对象的引用。被适配对象(Adaptee):被适配对象是一个已经存在的对象,它的接口与目标接口不兼容。客户端(Client):客户端通过目标接口调用适配器的方法来与被适配对象进行交互。

下面是一个适配器模式的Java代码示例:

首先定义一个目标接口:

public interface MediaPlayer {   public void play(String audioType, String fileName);}

接着定义一个具体的被适配对象:

public class Mp4Player {   public void playMp4(String fileName) {      System.out.println("Playing mp4 file. Name: "+ fileName);    }}

接下来定义适配器,它实现了目标接口,并包含一个对被适配对象的引用:

public class MediaAdapter implements MediaPlayer {   AdvancedMediaPlayer advancedMusicPlayer;   public MediaAdapter(String audioType){      if(audioType.equalsIgnoreCase("vlc") ){         advancedMusicPlayer = new VlcPlayer();             }else if (audioType.equalsIgnoreCase("mp4")){         advancedMusicPlayer = new Mp4Player();      }     }   @Override   public void play(String audioType, String fileName) {      if(audioType.equalsIgnoreCase("vlc")){         advancedMusicPlayer.playVlc(fileName);      }else if(audioType.equalsIgnoreCase("mp4")){         advancedMusicPlayer.playMp4(fileName);      }   }}

最后定义一个客户端,它通过目标接口调用适配器的方法来与被适配对象进行交互:

public class AudioPlayer implements MediaPlayer {   MediaAdapter mediaAdapter;    @Override   public void play(String audioType, String fileName) {              //播放 mp3 音乐文件的内置支持      if(audioType.equalsIgnoreCase("mp3")){         System.out.println("Playing mp3 file. Name: " + fileName);               }       //mediaAdapter 提供了播放其他文件格式的支持      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");      }   }   }

这个例子中,客户端调用了 MediaPlayer接口的 play方法。如果传入的文件类型是 mp3,则直接在 AudioPlayer类中播放,否则就通过适配器模式实现播放其他格式的音频文件。当需要播放不支持的音频格式时,AudioPlayer类会创建一个 MediaAdapter对象,该对象可以将不支持的音频格式转换成支持的格式,然后调用 MediaPlayer接口的 play方法来播放该格式的音频文件。

使用适配器模式的好处是可以将两个不兼容的接口进行连接,从而实现代码的复用和扩展性的提高。如果有新的音频格式需要支持,只需要实现一个新的适配器即可。

关键词:
责任编辑:hn1007
主站蜘蛛池模板: 亚洲av无码一区二区三区人 | 四虎免费紧急入口观看 | 国产成人拍精品视频网 | 青青久操视频 | 大香伊人久久精品一区二区 | 日本一级片免费观看 | 久久网站免费观看 | 亚洲av成人精品日韩一区 | 色婷婷久久一区二区三区麻豆 | 一级片www | 国产美女特级嫩嫩嫩bbb | 伊人久久青青草 | 久久精品视频观看 | 免费国产va在线观看视频 | 欧美日韩不卡码一区二区三区 | 亚洲综合欧美日本另类激情 | 色综七七久久成人影 | 国产精品嫩草影院午夜 | 四虎影视www在线播放 | 大地资源中文第二页日本 | 少妇被粗大的猛烈进出动视频 | 免费黄色a级片 | 无码av动漫精品一区二区免费 | 亚洲av电影一区二区在线秋霞网 | 精品国产av色一区二区深夜久久 | 日韩精品亚洲专区在线影视 | 视频综合网 | 欧美日韩成人免费视频 | 长腿校花无力呻吟娇喘 | a级毛片毛片免费观看丝瓜 a级毛片毛片免费观看永久 | 久久99精品国产99久久 | 伊人中文字幕波多野结衣 | 伊人婷婷色香五月综合缴缴情小蛇 | 把女人弄爽特黄a大片 | 亚洲性免费 | 一区二区在线视频免费观看 | 国产精品久久精品国产 | 在线国产一区二区三区 | 日本电影一区二区三区 | 天堂网色| www.久久精品 |