将一个类的接口转换成客户希望的另外一个接口,Adapter模式让原来由于接口不兼容二不能一起工作的那些类可以一起工作。
类适配器模式代码:
例子:视频软件读rmvb和avi制式
创建rmvb的接口
public interface RMVBplayer {
void play();
}
创建rmvb的实现
public class RMVBplayerImpl implements RMVBplayer {
@Override
public void play() {
System.out.println("play rmvb");
}
}
创建avi的接口
public interface AVIplayer {
void play();
}
创建avi的实现
public class AVIPlayerImple implements AVIplayer {
@Override
public void play() {
System.out.println("play avi");
}
}
创建rmvb适配avi的适配器
public class RMVBAdapterAVI implements RMVBplayer {
AVIplayer avIplayer;
public RMVBAdapterAVI(AVIplayer avIplayer) {
this.avIplayer = avIplayer;
}
@Override
public void play() {
avIplayer.play();
}
}
创建computer类来执行
public class Computer {
void playVideo(RMVBplayer rmvBplayer) {
rmvBplayer.play();
};
}
执行:
public class AdapterMain {
public static void main(String[] args) {
Computer computer = new Computer();
RMVBplayer rmvBplayer = new RMVBplayerImpl();
computer.playVideo(rmvBplayer);
AVIplayer avIplayer = new AVIPlayerImple();
computer.playVideo(new RMVBAdapterAVI(avIplayer));
}
}
结果:
play rmvb
play avi