桥接模式
桥接模式
- 场景
- 系统需要在抽象化与具体话之间更加灵活,避免多个层次的有静态的继承关系,通过桥接模式,可以再抽象层建立一个连接
- 系统存在多个独立变化,且每个维度都需要独立的变化,并且有一定的关联使用(一般是这个)
- 角色
- 抽象类Abstraction(维护一个实现类接口) (也可以理解这里是个桥,连接了具体实现类)
- 扩充抽象类(扩充Abstraction的接口, extends Abstraction)
- 实现类接口
- 具体实现类
- 优点
- 抽象类与具体实现类解耦分类,避免了多层次继承导致的系统复杂度
- 独立各维度模块,单纯的改动任意模块都不会对之前的有所影响.
- 缺点
- 大部分桥接工作都是在抽象类中做的,会带来一定的系统理解复杂度
- 桥接模式最常解决的问题是多个独立维度的问题,所以使用该模式要对独立模式有很好的拆解