相关文章
【合集】Java设计模式
总结
其实就是面向接口面向抽象编程,抽象类里面维护一个接口成员。通过构造方法把抽象类和接口成员桥接起来。
下面案例:通过在操作系统接口内,组合一个视频播放接口,来实现桥接模式。
桥接模式
视频播放接口
1
2
3
|
public interface VideoFile {
void decode(String fileName);
}
|
avi类型视频播放类
1
2
3
4
5
|
public static class AviFile implements VideoFile {
public void decode(String fileName) {
System.out.println("avi视频文件 :" + fileName);
}
}
|
rmvb类型视频播放类
1
2
3
4
5
|
public static class RmvbFile implements VideoFile {
public void decode(String fileName) {
System.out.println("rmvb视频文件 :" + fileName);
}
}
|
操作系统接口
1
2
3
4
5
6
7
|
public static abstract class OperatingSystem {
protected VideoFile videoFile;
public OperatingSystem(VideoFile videoFile) {
this.videoFile = videoFile;
}
public abstract void play(String fileName);
}
|
Windows操作系统
1
2
3
4
5
6
7
8
9
|
public static class Windows extends OperatingSystem {
public Windows(VideoFile videoFile) {
super(videoFile);
}
@Override
public void play(String fileName) {
videoFile.decode(fileName);
}
}
|
Mac操作系统
1
2
3
4
5
6
7
8
9
|
public static class Mac extends OperatingSystem {
public Mac(VideoFile videoFile) {
super(videoFile);
}
@Override
public void play(String fileName) {
videoFile.decode(fileName);
}
}
|
客户端调用
1
2
3
4
5
6
7
8
|
AviFile aviFile = new AviFile();
RmvbFile rmvbFile = new RmvbFile();
Mac mac1 = new Mac(aviFile);
mac1.play("战狼3");
Mac mac2 = new Mac(rmvbFile);
mac2.play("战狼3");
|