桥接器模式

桥接器模式

桥接器起着连接两边的作用,将抽象部分和实现部分分离,使它们都可以独立的进行变化。
让类的功能层次和实现层次相分离,使两者能独立变化,在两者之间搭建桥梁,实现桥接。

如果一个事物有多个维度的属性,我们该如果表示因这些维度不同而衍生出的多种不同的类呢?
如果是使用继承的方式,每多一个维度,由于是乘数关系,会导致类数量爆炸。

用图形的表示类举例,我们的图形有四种形状,三种颜色,如果要表示所有的状态的图形,使用继承的方式就得要12种类来。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T4bAzv3Z-1628594939459)(imgs/桥接器模
式1-继承.png)]
请添加图片描述

此时如果我们要加一个边框维度,就实线、虚线两种状态,那就需要2*12=24种类才可以表示所有情况!(总感觉图形这个例子不太好,这几个差异点设置不同属性就能表示,但找到的很多资料都在用这个例子,维度的差异更应该是流程上的差异,而不仅仅是字段上的差异)

如果我们使用关联的方式来表示以上这种情况,则得到下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vL2dQBT-1628594939461)(imgs/桥接器模式1-关联.png)]
请添加图片描述
此处的关联可以是聚合也可以是组合。使用关联的方式就可以减少类,此处的图形就相当于桥接器,连接的形状和颜色两个维度

todo: 此处也可以考虑使用摊煎饼或冲咖啡来举例,暂时还没想好。

请添加图片描述

1 使用场景

2 角色

抽象化角色:
具体化角色:

3 实践

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值