桥接模式

桥接器模式(BridgePattern)又称为桥梁模式,它的用意是‘将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化’。关键就在于能否脱耦。
Bridge模式将继承关系转换为组合关系,从而降低了系统间的耦合,减少了代码编写量。
在开发过程中通常会遇到一个对象有两个变化的维度,而且这两个维度变化地非常巨烈,这种变化导致了纵横交错的结果,使对象的设计变得困难,并且在对象数量上和可扩展性上都带来了很大的麻烦。此时应当把这两个变化比较巨烈的维度拆离,然后用组合的方式把它们结合在一起。这就是桥接器模式的思想。下面是它的结构图:
在这里插入图片描述
桥接模式的主要特点:
1、分离接口及其实现部分,这里实现了Abstraction和Implementor的分离,有助于降低对实现部分的依赖性,从而产生更好的结构化系统。
2、提高了可扩充性,可以独立的对Abstraction和Implementor层次结构进行扩充。
与适配器有什么不同
很多时候经常容易把桥接模式和适配器模式弄混。那什么时候用桥接,什么时候用适配器呢?有哪些共同点,又有哪些不同点?
共同点:桥接和适配器都是让两个东西配合工作。
不同点:出发点不同。适配器:改变已有的两个接口,让他们相容。 桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。所以说,如果你拿到两个已有模块,想让他们同时工作,那么你使用的适配器。如果你还什么都没有,但是想分开实现,那么桥接是一个选择。桥接是先有桥,才有两端的东西,适配是先有两边的东西,才有适配器,桥接是在桥好了之后,两边的东西还可以变化。例如游戏手柄,就象个桥,它把你的任何操作转化成指令。虽然,你可以任何操作组合,但是你的操作脱不开上下左右,a,b,选择,确定。
桥梁模式适应在什么时候使用?
1、如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。
2、设计要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。
3、一个构件有多于一个的抽象化角色和实现化角色,系统需要它们之间进行动态耦合。虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计要求需要独立管理这两者。
桥梁模式是一个非常有用的模式,也非常复杂,它很好的符合了开放-封闭原则和优先使用对象,而不是继承这两个面向对象原则。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值