设计模式结构型桥接模式
Posted lisin-lee-cooper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式结构型桥接模式相关的知识,希望对你有一定的参考价值。
一.概念
1.1概念
将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和现这两个可变维度的耦合度。
1.2 结构
桥接(Bridge)模式包含以下主要角色:
抽象化(Abstraction)角色 :定义抽象类,并包含一个对实现化对象的引用。
扩展抽象化(Refined Abstraction)角色 :是抽象化角色的子类,实现父类中的业务方法,
并通过组合关系调用实现化角色中的业务方法。
实现化(Implementor)角色 :定义实现化角色的接口,供扩展抽象化角色调用。
具体实现化(Concrete Implementor)角色 :给出实现化角色接口的具体实现。
二.场景
需要开发一个跨平台视频播放器,可以在不同操作系统平台(如Windows、Mac、Linux等)上播放多种格式的视频文件,常见的视频格式包括RMVB、AVI、WMV等。该播放器包含了两个维度,
三.类图及实现
public interface VideoFile
void decode(String fileName);
public class AVIFile implements VideoFile
public void decode(String fileName)
System.out.println("avi视频文件:" + fileName);
public class REVBBFile implements VideoFile
public void decode(String fileName)
System.out.println("rmvb文件:" + fileName);
public class Windows extends OperatingSystem
public Windows(VideoFile videoFile)
super(videoFile);
public void play(String fileName)
videoFile.decode(fileName);
public class Mac extends OperatingSystem
public Mac(VideoFile videoFile)
super(videoFile);
public void play(String fileName)
videoFile.decode(fileName);
public abstract class OperatingSystem
protected VideoFile videoFile;
public OperatingSystem(VideoFile videoFile)
this.videoFile = videoFile;
public abstract void play(String fileName);
public static void main(String[] args)
OperatingSystem os = new Windows(new REVBBFile());
os.play("战狼3");
以上是关于设计模式结构型桥接模式的主要内容,如果未能解决你的问题,请参考以下文章