运用JAVA代码编写一个适配器模式
时间: 2023-07-07 09:37:58 浏览: 100
java 适配器模式
5星 · 资源好评率100%
好的,以下是一个简单的适配器模式的 Java 代码示例:
首先,我们创建一个待适配的接口:
```
public interface MediaPlayer {
public void play(String audioType, String fileName);
}
```
接下来,我们创建一个具体的类,该类实现了待适配的接口:
```
public class AudioPlayer implements MediaPlayer {
@Override
public void play(String audioType, String fileName) {
if (audioType.equalsIgnoreCase("mp3")) {
System.out.println("Playing mp3 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 AudioPlayerAdapterPatternDemo {
public static void main(String[] args) {
AudioPlayer audioPlayer = new AudioPlayer();
audioPlayer.play("mp3", "beyond the horizon.mp3");
audioPlayer.play("mp4", "alone.mp4");
audioPlayer.play("vlc", "far far away.vlc");
audioPlayer.play("avi", "mind me.avi");
MediaPlayer mediaAdapter = new MediaAdapter("vlc");
mediaAdapter.play("vlc", "Far far away.vlc");
}
}
```
在上述代码中,我们创建了一个 AudioPlayer 类,该类实现了 MediaPlayer 接口。然后,我们创建了一个 MediaAdapter 类,该类实现了 MediaPlayer 接口,并使用 AdvancedMediaPlayer 接口实现了适配器模式。最后,我们创建了一个客户端类,该类使用 AudioPlayer 和 MediaAdapter 类来播放不同类型的音频文件。通过适配器模式,我们可以使不兼容的接口能够协同工作。
阅读全文