请教strategy 和 bridge的区别

08-04-17 persister
              

strategy 和 bridge 使用的都是合成,引用的也是接口,接口的实现可以独立变化,它们都是合成和面向接口编程的范例,可是它们本质的区别是啥呢,还请各位高手解惑!

              

persister
2008-04-18 09:36

看来这个问题太简单了……

banq
2008-04-18 09:53

>它们本质的区别是啥

你看到的他们共同点只是表面现象,也就是是展示了合成和面向接口是什么样的,这其实展示了什么是OO,所以,我说只有掌握设计模式,才说明你入了OO的门。因为设计模式不只是简单展示OO的技术特点,而且告诉你在什么情况下如何使用这些技术特点,而这点才是最重要,才是真正的编程思想,所以,用这个标准来看,那个Thingking in Java Java编程思想 TIJ是挂羊头卖狗肉。

在什么情况下使用这些技术特点,如合成和面向接口,也就是strategy 和 bridge 的本质区别,所以,合成和面向接口是结果,我们从结果无法推断到其原因,既然探讨原因,就不能用结果的语境来表达,也就是说,无法从合成和面向接口上去解释他们的本质。

还是得从模式定义上找原因,Strategy是策略模式,适合解决策略算法替换的情况;而Bridge是桥模式,是将对象行为和抽象分离,达到可以应付行为变化的目的,所以,这两个模式很显然侧重点适应的情况是不同的。

persister
2008-04-18 10:51

非常感谢banq的热情,本人对这句话“而Bridge是桥模式,是将对象行为和抽象分离”不是很理解,“对象行为和抽象分离”能具体并且通俗的解释一下吗

Jimny
2008-04-18 11:18

里面的咖啡加牛奶的例子很通俗。:)

2Go 1 2 下一页