如果需要开发一个跨平台视频播放器,可以在不同操作系统平台(如Windows、Linux、Unix等)上播放多种格式的视频文件,常见的视频格式包括MPEG、RMVB、AVI、WMV等。现使用桥接模式设计该播放器。
package BridgePattern;
//抽象类
public abstract class OperatingSystem {
protected VideoFile vf;
public void setVf(VideoFile vf) {
this.vf = vf;
}
public abstract void play(String Filename);
}
package BridgePattern;
//windows实现
public class Windows extends OperatingSystem {
@Override
public void play(String Filename) {
String OSType="Windows播放";
this.vf.bePlay(OSType,Filename);
}
}
package BridgePattern;
//Unix实现
public class Unix extends OperatingSystem {
@Override
public void play(String Filename) {
String OSType="Unix播放";
this.vf.bePlay(OSType,Filename);
}
}
package BridgePattern;
public class Linux extends OperatingSystem {
@Override
public void play(String Filename) {
String OSType="Linux播放";
this.vf.bePlay(OSType,Filename);
}
}
package BridgePattern;
//接口
public interface VideoFile {
void bePlay(String OSType,String Filename);
}
package BridgePattern;
public class MPEGFile implements VideoFile {
@Override
public void bePlay(String OSType, String Filename) {
System.out.println(OSType+"MPEGFile"+Filename);
}
}
package BridgePattern;
public class AVIFile implements VideoFile {
@Override
public void bePlay(String OSType, String Filename) {
System.out.println(OSType+"AVIFile"+Filename);
}
}
实现
package BridgePattern;
//桥接模式
public class Test {
public static void main(String[] args) {
/* VideoFile vf = new AVIFile();
OperatingSystem os=new Windows();
os.setVf(vf);
os.play("音乐");*/
VideoFile vf = new MPEGFile();
OperatingSystem op = new Unix();
op.setVf(vf);
op.play("动画");
}
}