设计模式 桥接模式(Bridge)

博文目录

文章目录


定义:将抽象与实现分离,使它们可以独立变化。

它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。事实上就是处理多层继承结构,处理多维变化的场景,将各个维度设计成独立的继承结构,使得各个维度能够独立地扩展,并在抽象层建立关联。

在现实生活中,我们可能需要关注某些类的多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。

如果有一种图形,首先是形状维度,分类有正方形和圆形,然后又加了颜色维度,分类有红色和绿色,类图如下,如果要加一个黄色,那需要加黄色正方形和黄色圆形两个子类,如果再加一个维度,那需要搞更多的子类
在这里插入图片描述
使用桥接的思想后,以形状为主维度,组合颜色维度,分离两个维度的继承实现体系,不管是要加形状还是加颜色,都只需要多一个子类或实现类即可,如果再加一个维度,也仅仅是在Graph里面多加一个字段,并添加新维度的接口和实现类
在这里插入图片描述
桥接模式的优点是:
抽象与实现分离,扩展能力强
符合开闭原则,符合合成复用原则

桥接模式能够代替多层继承的方案。多层继承违背了单一职责原则,复用性较差,类的个数过多。桥接模式能够极大的降低子类的个数,从而降低管理和维护的成本.
桥接模式极大的提高了系统的可扩展性,在两个变化维度中随意扩展一个维度,都不须要改动原有的系统,符合开放-封闭原则。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值