Featured image of post Java设计模式-桥接模式Bridge

Java设计模式-桥接模式Bridge

相关文章

【合集】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");
皖ICP备2024056275号-1
发表了78篇文章 · 总计149.56k字
本站已稳定运行