💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 桥接设计模式 ### 桥接设计模式和适配器模式类似,桥接设计模式也是一种结构性设计模式。 ### 将抽象部分与实现部分分离,是他们都可以独立的变化,通俗来讲,是通过组合来桥接其他的行为或者维度。 ### ## 应用场景 ### 系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性 ### 不想使用继承导致系统类的个数急剧增加的系统 ### 有时候一个类,可能会拥有多个变化维度,比如啤酒有不同的容量和品牌,可以使用继承组合的方式进行开发,加入维度很多,就容易出现累得膨胀,使用桥接模式就可以解决这个问题且解耦。 ### ## 业务背景 ### 我们需要构建⼀个⼿机类,我们知道⼿机有很多品牌,苹果、华为等,从另外⼀个颜⾊维度,⼜有多种颜⾊,红、⻩、蓝等,那如果描述这些类的话,传统⽅式就直接通过继承,就需要特别多的类,品牌2,颜⾊3,就是6个类了,如果后续再增加品牌就更多了,类数⽬将会激增,即所谓的类爆炸 ### 使⽤桥接模式就可以解决这个问题,且灵活度⼤⼤提⾼ ### 传统的继承方式实现如下图所示: ### ![](https://img.kancloud.cn/fa/92/fa92a89f8e17fc9036637ebac5a93536_1948x974.png) ### 如果我们使用桥接模式实现如下图所示: ### ![](https://img.kancloud.cn/6d/fe/6dfec45ceb1bb065f998c927018923f9_1964x702.png) ### 具体实现(云效代码study-java项目当中设计模式当中有代码案例) ### ![](https://img.kancloud.cn/ee/4e/ee4e32c4e01f5d6f276409b42969e5a2_3356x1878.png) ### ![](https://img.kancloud.cn/23/f2/23f2d8018af5d088ef3f6bcdb410535f_2092x1754.png) ### ## 优点 ### 抽象和实现进行了分离 优秀的扩展能力,符合开闭原则 ### ## 缺点 ### 增加系统的理解与设计难度 使⽤聚合关联关系建⽴在抽象层,要求开发者针对抽象进⾏设计与编程,⽐如抽象类汽⻋,⾥⾯聚合了颜⾊类,有点像对象适配器 ###