桥接模式不是将两个不相干的类链接,而是将一个需要多维度变化的类拆分成抽象部分和实现部分,并且在抽象层对两者做组合关联,是用组合的方式来解决继承的问题。
举个例子,如果一个类在两个维度分别有m和n种变化,采用继承的方式就需要扩展出m*n个子类,且一个维度每增加一种变化就多出另一个维度变化总数的子类;如果将两个维度拆分再组合,加起来也只有m+n个子类,且每个维度独立扩展,一个维度增加一种变化只需要增加1个子类
将俩个维度分离,使他们可以独立变化。又称为柄体(Handle and Body)模式或者接口(interface)模式。
结构图
角色与理解
- 桥接模式包含如下角色:
- Abstraction (抽象类):用于定义抽象类的接口,一般为抽象类而不是接口,其中维持一个Implementor的引用
- RefinedAbstraction (扩充抽象类):继承或者实现抽象类,通常情况下为具体类而不是抽象类,实现抽象类中定义的抽象业务方法,在具体业务方法中可以调用Implementor中定义的业务方法
- Implementor (实现类接口):定义实现类的接口,一般而言,Implementor接口仅提供基本操作,并交由子类去实现
- ConcreteImplementor (具体实现类):实现Implementor中定义的基本操作方法
- 抽象类持有实现类接口的对象,调用实现类接口中定义的方法
- 本质上是两个独立变化的维度,一个抽象层引用另一个抽象层的东西,以实现通过实现类进行业务方法的调用
核心代码
- 抽象类
- 实现接口
- 客户端
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
桥接器
+关注
关注
0文章
77浏览量
45346
发布评论请先 登录
相关推荐
关于桥接模式遇到的问题
VMware使用桥接模式,已经手动设置ip地址和主机ip同一网段,但是ifconfig显示的ip地址却和vmnet8(NAT)同一网段?怎么解决?
发表于 10-16 15:06
优化电动汽车的结构性能
优化电动汽车的结构性能以提高效率和安全性迅速增长的全球电动汽车(EV)市场预计到2027年将达到8028亿美元。在电池和高压电子设备的驱动下,电动汽车的运行和维护成本往往低于传统汽车,几乎不会产生
发表于 09-17 08:10
设计模式之结构型模式
的接口功能。(二)应用实例:读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。(三)构成要素:二、桥接模式(一)定义:桥
发表于 11-06 17:51
•1次下载
桥接模式应用场景
1、什么是桥接模式? Decouple an abstraction from its implementation so that the two can vary independently.
评论