2、FLV 视频格式实现
package bridge; /** * FLV 视频格式 */ public class FlvVedio implements Vedio { @Override public Vedio openVedio() { System.out.println("打开 FLV 格式视频"); return new FlvVedio(); } @Override public void showVedio() { System.out.println("当前视频格式是 FLV"); } }
3、MP4 视频格式实现
package bridge; /** * MP4 格式 */ public class MP4Vedio implements Vedio { @Override public Vedio openVedio() { System.out.println("打开 MP4 格式视频"); return new MP4Vedio(); } @Override public void showVedio() { System.out.println("当前视频格式是 MP4"); } }
4、系统平台抽象
package bridge; /** * 平台操作系统 抽象类 */ public abstract class Platform { /** * 这是桥接模式最核心的代码 * 在 Platform 中通过组合方式关联 Vedio * Platform 的子类也可以关联 Vedio 子类 */ protected Vedio account; public Platform(Vedio account) { this.account = account; } /** * 该方法与 Vedio 中的方法名相同 * 方法名相同不是强制的 * @return */ abstract Vedio openVedio(); }
5、Linux 系统平台实现
package bridge; public class LinuxPlatform extends Platform { public LinuxPlatform(Vedio account) { super(account); } @Override Vedio openVedio() { System.out.println("在 Linux 平台播放视频"); return account; } }
6、Android 系统平台实现
package bridge; public class AndroidPlatform extends Platform { public AndroidPlatform(Vedio account) { super(account); } @Override Vedio openVedio() { System.out.println("在 Android 平台打开视频"); return account; } }
7、测试类
package bridge; public class Main { public static void main(String[] args) { // 在 Linux 平台打开 FLV 视频 Platform linuxPlatform = new LinuxPlatform(new FlvVedio()); Vedio linuxFlv = linuxPlatform.openVedio(); linuxFlv.showVedio(); System.out.println(); // 在 Android 平台打开 MP4 视频 Platform androidPlatform = new AndroidPlatform(new MP4Vedio()); Vedio androidMp4 = androidPlatform.openVedio(); androidMp4.showVedio(); } }
执行结果 :
在 Linux 平台播放视频 当前视频格式是 FLV 在 Android 平台打开视频 当前视频格式是 MP4