适配器模式是在已经存在类与对象的情况下,有第三方需要使用这个类,但是由于参数不对,需要一个适配模式帮助,使得第三方也能使用这个类的一种模式。
优点:可以让没有关系的两个类有所关联。提高类的复用。
缺点:过多使用适配器,系统会不易维护。
不推荐使用。我们编程的两大原则:面向对象编程和面向接口编程。当由于业务需要,必须修改一个已经正常运行的系统的接口时,可以考虑使用适配器模式。
举例:
假定我们现在有已存在的两组功能,视频播放和音频播放。
public interface MediaPlayer {
public void play(String audioType,String fileName);
}
public interface AdvanceMediaPlayer {
public void playVlc(String fileName);
public void playMp4(String fileName);
}
public class MediaAdapter implements MediaPlayer{
public AdvancedMediaPlayer advancedMusicPlayer;
public MediaAdapter(String auditType){
if(auditType.equalsIngnoreCase("vlc")){
advancedMusicPlayer = new VlcPlayer();
} else if (auditType.equalsIngnoreCase("mp4")){
advancedMusicPlayer = new Mp4Player();
}
}
@Override
public void play(String auditType,String fileName){
if(auditType.equalsIngnoreCase("vlc")){
advancedMusicPlayer.playVlc();
}else if(auditType.equalsIngnoreCase("mp4")){
advancedMusicPlayer.playMp4();
}
}
}
通过MediaAdapter类我们就可以通过AudioPlayer来播放MediaPlayer.