有时候一个类,可能会拥有多个变化维度。比如奶茶可以选择容量大小、口味风味。容易想到的实现方案是通过继承实现各种组合,但是这样会很容易造成类爆炸。那么有没有什么良策呢?答案就是 Bridge Pattern 桥接模式,其是结构性模式的一种,本文就让我们来了解下该模式
| 设计模式 |
|---|
这里,我们需要构建一个汽车类,我们知道汽车有很多品牌,比如宝马BMW、奔驰Benz。与此同时,汽车的颜色又是五颜六色的,常见的有红、绿、蓝。可以看到在这里对于汽车而言,其存在两个维度——品牌、颜色。前者有2种变化:宝马、奔驰;后者有3种选择:红、绿、蓝。如果使用继承的方式实现各品牌不同颜色的汽车,那将会产生2x3=6个具体的汽车类,示意图如下所示。如果以后需要增加玛莎拉蒂、劳斯莱斯品牌,再新增一个汽车空间大小的维度。可以想见各种组合下的汽车类数目将会激增,即所谓的类爆炸



