设计模式篇之 桥接模式 Bridge
目的
桥接是一种结构型设计模式,它允许你将一个大型类或一组紧密相关的类拆分为两个独立的层次结构——抽象层和实现层——这两者可以独立开发。
问题
抽象层?实现层?听起来有点吓人?别担心,我们来看一个简单的例子。
假设你有一个几何形状类`Shape`,它有两个子类:`Circle`(圆形)和`Square`(正方形)。你想扩展这个类层次结构以包含颜色,因此你计划创建`Red`(红色)和`Blue`(蓝色)形状的子类。然而,因为你已经有两个子类了,你需要创建四种类组合,比如`BlueCircle`(蓝色圆形)和`RedSquare`(红色正方形)。

在层次结构中添加新的形状类型和颜色会导致其呈指数级增长。例如,要添加一个三角形形状,你需要引入两个子类,每个颜色一个。之后,添加一种新颜色将需要创建三个子类,每个形状类型一个。越往后,情况越糟糕。
解决方案
这个问题之所以出现,是因为我们试图在两个独立的维度上扩展形状类:形状和颜色