桥接模式
桥接模式将类的抽象部分与其实现部分分离,使它们可以独立变化。这种模式有助于解决多维度变化的问题。
示例
这听起来比较让人难以理解,但实际上桥接模式的概念非常简单,很可能你在开发过程中已经不知不觉地使用过它。
例如,我们之前一直使用门的例子来解释设计模式。我们通常会有 Door
, IronDoor
, WoodenDoor
这几个类,但如果再引入 Color
的概念,那么就会有 RedIronDoor
, BlueIronDoor
, RedWoodenDoor
, BlueWoodenDoor
等多个类——很明显,类的数量将随属性的增加而呈指数级增长。
为了避免这种情况,我们会将继承关系改为组合关系,即将 Color
作为一个属性,而不是一个类;对于 Material
也是一样。这样,我们就可以通过组合不同的对象来实现不同颜色和材质的门,而不需要为每种属性都创建一个新的类。