5 种创建型模式7 种结构型模式11 种行为型模式现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色
类图如下:

可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类
定义
桥接(Bridge)模式包含以下主要角色:
视频播放器
不同操作系统平台(如Windows、Mac、Linux等)上播放多种格式的视频文件两个维度,适合使用桥接模式类图如下:

代码如下:
// 抽象角色
public interface VideoFile {
//解码功能
void decode(String fileName);
}
// avi视频文件 具体角色
public class AviFile implements VideoFile {
@Override
public void decode(String fileName) {
System.out.println("avi视频文件 :" + fileName);
}
}
// rmvb视频文件 具体角色
public class RmvbFile implements VideoFile {
@Override
public void decode(String fileName) {
System.out.println("rmvb视频文件 :" + fileName);
}
}public abstract class OpratingSystem {
//声明videFile变量
protected VideoFile videoFile;
public OpratingSystem(VideoFile videoFile) {
this.videoFile = videoFile;
}
public abstract void play(String fileName);
}// windows操作系统
public class Windows extends OpratingSystem {
public Windows(VideoFile videoFile) {
super(videoFile);
}
@Override
public void play(String fileName) {
videoFile.decode(fileName);
}
}
// Mac操作系统
public class Mac extends OpratingSystem {
public Mac(VideoFile videoFile) {
super(videoFile);
}
@Override
public void play(String fileName) {
videoFile.decode(fileName);
}
}public class Client {
public static void main(String[] args) {
//创建mac系统对象
OpratingSystem system = new Mac(new AviFile());
//使用操作系统播放视频文件
system.play("战狼3");
}
}好处
可扩充性