设计模式之——桥接(Bridge)和策略(strategy)

本文探讨了桥接(Bridge)模式和策略(Strategy)模式的相似点和不同之处。桥接模式用于解决类和行为的频繁派生问题,通过组合而非继承实现对象与行为的解耦。策略模式则关注于封装算法并允许动态替换,以实现行为的变化。两者虽然在结构上相似,但在应用场景和关注点上存在本质区别:桥接关注结构,而策略关注行为的动态替换。
摘要由CSDN通过智能技术生成

之所以把这两个放在一起,是因为他们很相似,但又是完全不同的


先来看看Bridge模式

1)如果客户给了一个需求,故我们实现了类A

2)过了几天客户说这个东东需要有两种算法,故我们派生出 A0, A1

3)然后又过了几天,客户又提出要求说要在不同的操作系统下实现,故我们派生出类A0a, A0b, A1a, A1b

这样我们需要不停的派生,不停的改


Bridge模式就是解决这个问题的, 对象和行为都要不停的改变, 把对象和行为类分开,单独演进,在对象类中包含行为类的变量,这样就可以随意组合,其类图关系如下


其中,Abstraction和 AbstractionImp分别是类和行为的抽象接口,即基类。Bridge用组合而不是继续的方式来处理问题,这是符合面向对象的思想的,能有组合的尽量不用继承,这样使得代码更灵活。

有一篇文章对Bridge讲得特别好,http://www.blogjava.net/lijiajia418/archive/2006/09/18/70268.html


另外说点Bridge和visitor的相似和不同点:

我刚开始看的时候觉得两个模式几乎就是一样的,都是把元素和行为进行分离,然后可以独立演变和组合。但其实他们还是有很大的不同的

1)对于Bridge模式,Abstracti

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值