[设计模式]适配器模式
2018-01-22 09:46
239 查看
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
默认有播放Mp3的功能,之后加入一个新的播放器,可以播放Mp4和Rm
创建高级播放器
创建高级播放器适配器
实现播放器
使用
结果
意图
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。实现
这边实现一个播放器。默认有播放Mp3的功能,之后加入一个新的播放器,可以播放Mp4和Rm
创建高级播放器
public interface HightMediaPlayer{ void playMp4(String fileName); void playRm(String fileName); } public class Mp4Player implements HightMediaPlayer{ @Override public void playMp4(String fileName) { System.out.println("playing "+fileName); } @Override public void playRm(String fileName) { } } public class RmPlayer implements HightMediaPlayer{ @Override public void playMp4(String fileName) { } @Override public void playRm(String fileName) { System.out.println("playing "+fileName); } }
创建高级播放器适配器
public class MediaAdapter{ private HightMediaPlayer mediaPlayer; public MediaAdapter(String type){ if (type.equals("mp4")){ mediaPlayer = new Mp4Player(); }else if(type.equals("rm")){ mediaPlayer = new RmPlayer(); } } public void play(String type,String fileName){ if (type.equals("mp4")){ mediaPlayer.playMp4(fileName); }else if(type.equals("rm")){ mediaPlayer.playRm(fileName); } } }
实现播放器
public class MediaPlayer{ private MediaAdapter mediaAdapter; public void play(String type,String fileName){ if (type.equals("mp3")){ System.out.println("playing "+fileName); }else if(type.equals("rm") || type.equals("mp4")){ mediaAdapter = new MediaAdapter(type); mediaAdapter.play(type,fileName); }else{ System.out.println("no player"); } } }
使用
public static void main(String... args){ MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.play("mp3","xxx1.mp3"); mediaPlayer.play("mp4","xxx2.mp4"); mediaPlayer.play("rm","xxx3.rm"); mediaPlayer.play("avi","xxx4.avi"); }
结果
I/System.out: playing xxx1.mp3 I/System.out: playing xxx2.mp4 I/System.out: playing xxx3.rm I/System.out: no player
资料
菜鸟教程相关文章推荐
- 设计模式(五)适配器模式Adapter(结构型)
- 设计模式--适配器模式(简要)(四)
- Android设计模式系列-适配器模式
- 设计模式随笔-适配器模式
- Python的结构型设计模式之适配器模式
- Java设计模式之适配器模式
- 设计模式之适配器模式与外观模式
- 设计模式之 适配器模式
- Java设计模式—适配器模式
- 设计模式 适配器模式(Adater Pattern)
- PHP设计模式之适配器模式
- 设计模式—适配器模式
- Java:设计模式之适配器模式Adapter
- Android设计模式系列-适配器模式
- 设计模式:适配器模式
- 设计模式--适配器模式
- 设计模式之适配器模式代码示例
- Java 设计模式(五)适配器模式
- 设计模式之 适配器模式详解
- 设计模式之适配器模式