桥接模式(Bridge Pattern)属于结构型设计模式,用于将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,使得这两层能够独立地扩展。
桥接模式通常包含以下角色:
抽象化(Abstraction):定义抽象类的接口,维护对实现化对象的引用。
细化抽象(RefinedAbstraction):扩展抽象化角色,通常情况下,它不再是抽象类而是具体类。
实现化(Implementor):定义实现类的接口,这个接口不一定要与抽象化角色的接口完全一致,事实上这两个接口可以完全不同。
具体实现(ConcreteImplementor):实现实现化角色的接口,并定义它的具体实现。
桥接模式的一个典型例子是图形与颜色。图形是一个抽象的概念,它可以是圆形、矩形等;颜色也是一个抽象的概念,它可以是红色、蓝色等。图形和颜色可以独立地变化,桥接模式可以使得它们之间的耦合降到最低。
在实际的软件开发中,桥接模式适用于以下场景:
当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。
当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。
当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。