设计模式之桥接模式

桥接模式

桥接模式

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