桥接模式定义:
将抽象部分与其实现实部分分离,使他们都可以独立地变化,它是一种对象结构型模式,又成柄体模式
桥接模式结构图
桥接模式主要优缺点:
优点:
1.分离抽象接口及其实现部分。桥接模式使用“对象间的关联关系”解耦了抽象和实现之间的固定绑定关系,是的抽象和实现可以沿着各自的维度来变化同一个继承层次结构中。而是“子类化”他们,使它们各自都具有自己的子类,以便任意组合子类,从而获得多维度组合对象。
2.在很多情况下,桥接模式可以取代多层集成方案,多层继承方案违背单一职责原则,复用性较差且类的个数非常多,桥接模式是比多层次更好的解决放啊,他极大的减少了子类的个数。
3.桥接模式提高系统的可扩展性,在两个变化唯独中任意扩展一个维度,都不需要修改原有系统,符合开闭原则。
缺点:
1.桥接模式的使用会增加系统的理解和设计难度,由于关联关系建立的抽象层,要求开发者一开始就针对抽象层进行设计与编程。
2.桥接模式要求正确是识别出系统中两个独立的变化的维度,因此其使用范围具有一定的局限性,如何正确是呗两个独立的维度也需要一定的经验积累。
桥接模式使用场景
1.如果一个系统在抽象类和具体类之间增加更多灵活性,避免在两个层次之间建立静态继承关系,通过桥接模式可以使他们在抽象层建立一个关联关系。
2.抽象部分和实现部分可以继承的方式独立扩展二互不影响,在程序运行时可以动态的将一个抽象类子类对象和一个实现类子类的对象进行组合,即系统需要对抽象类的角色和实现类角色进行动态耦合。
3.一个类存在两个或者多个独立变化的维度,且这两个或者多个维度都需要独立进行扩展。
4.对于那些不希望使用继承或因为多层继承导致系统类的个数急剧增加的系统,桥接模式尤为适合。