桥接模式
桥接模式(Bridge):官宣是用于把抽象化与实现化解耦,使得二者可以独立变化。属于结构型模式,它通过提供抽象化和实现化之间的桥接结构来实现二者的解耦。其实通俗的理解来说就是基类A包含B接口,但是B接口不属于基类A,但是通过B接口,可以扩展衍生很多不用的方法。A类和继承自A的派生类都可以很容易的通过B的接口来实现不同的功能。并且不会对原有的结构造成影响,能够很方便的实现功能上的拓展。
虽然Play,和Stop需要执行DoAction方法,但是将DoAction做成接口,后期扩展时只需要添加相应的DO的类就可以实现不同的功能方法。通过桥接模式来解决变化情况多,采用原有的继承的方法会造成类爆炸,扩展起来不灵活的问题。
主要使用场景
- 一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系,通过桥接模式可以是她们建立一个关联关系
- 不希望使用继承导致系统类爆增,使用桥接模式尤为合适
- 一个类存在两个独立变化的维度,并且都需要独立进行扩展
文章参考菜鸟教程