我们用现实生活中的适配器不少。例如,我们使用存储卡适配器连接存储卡和一个计算机,因为计算机仅支持一种类型的存储卡和我们的卡不与计算机兼容。
适配器是两种不相容的实体之间的转换器。适配器模式是一种结构模式。
在Java设计模式,Adapter模式的工作原理是两个不兼容的接口之间的桥梁。
通过使用适配器模式,我们可以统一这两个不兼容的接口。
首先,我们创建一个播放器界面播放的媒体文件的任意时间。
MyPlayer是适配器,它统一的播放媒体文件的接口。
interface Player {
public void play(String type, String fileName);
}/*from www . j ava 2 s . c o m*/
interface AudioPlayer {
public void playAudio(String fileName);
}
interface VideoPlayer {
public void playVideo(String fileName);
}
class MyAudioPlayer implements AudioPlayer {
@Override
public void playAudio(String fileName) {
System.out.println("Playing. Name: "+ fileName);
}
}
class MyVideoPlayer implements VideoPlayer {
@Override
public void playVideo(String fileName) {
System.out.println("Playing. Name: "+ fileName);
}
}
class MyPlayer implements Player {
AudioPlayer audioPlayer = new MyAudioPlayer();
VideoPlayer videoPlayer = new MyVideoPlayer();
public MyPlayer(){
}
@Override
public void play(String audioType, String fileName) {
if(audioType.equalsIgnoreCase("avi")){
videoPlayer.playVideo(fileName);
}else if(audioType.equalsIgnoreCase("mp3")){
audioPlayer.playAudio(fileName);
}
}
}
public class Main{
public static void main(String[] args) {
MyPlayer myPlayer = new MyPlayer();
myPlayer.play("mp3", "h.mp3");
myPlayer.play("avi", "me.avi");
}
}