千里之行,始于足下。——老子
桥接模式类似于生活中的桥梁,连接两岸,促进两岸的沟通,代码世界中,两个不相关的类想进行关联,强行关联往往会适得其反,正所谓强扭的瓜不甜,那么桥接模式就在中间充当媒婆的角色。
1. 桥接模式
定义
桥接模式也成为桥梁模式、接口模式或者柄体模式,是将抽象部分与它的具体实现部分分离,是他们都可以独立地变化
通过组合的方式建立两个类之间的联系,而不是继承
属于结构型模式。
适用场景
在抽象和具体实现之间需要增加更多的灵活性的场景
一个类存在两个(或多个)独立变化的维度,而这两个(或多个)维度都需要独立进行扩展
不希望使用继承,或因为多层继承导致系统类的个数剧增
优点
分离抽象部门以及具体实现部分
提高了系统的扩展性
符合开闭原则
符合合成复用原则
缺点
增加了系统的理解与设计难度
需要正确地识别系统中两个独立变化的维度
2. 桥接模式简单案例
今年报了个班拿了个PMP证书,就拿这个做个例子。一般网络课程有课程、笔记、视频等内容,课程有很多,笔记是跟着课程的,视频也是跟着课程的,我们用桥接模式来实现一下三者的关系。
public interface ICrouse {
}
public class JavaCrouse implements ICrouse {
}
public class PythonCrouse implements ICrouse {
}
public interface INote {
void edit();
}
public class JavaNote implements INote {
public void edit() {
}
}
public class PythonNote