JiveJdon Community Forums
在线226人 J道首页 | 论坛首页 | 培训咨询 | 开源框架 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 6 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
persister

发表文章: 5
注册时间: 2008年04月17日 10:54
请教strategy 和 bridge的区别 发表: 2008年04月17日 10:55 回复
strategy 和 bridge 使用的都是合成,引用的也是接口,接口的实现可以独立变化,它们都是合成和面向接口编程的范例,可是它们本质的区别是啥呢,还请各位高手解惑!
persister

发表文章: 5
注册时间: 2008年04月17日 10:54
re:请教strategy 和 bridge的区别 发表: 2008年04月18日 09:36 回复
看来这个问题太简单了……
banq

发表文章: 8929
注册时间: 2002年08月03日 17:08
回复:请教strategy 和 bridge的区别 发表: 2008年04月18日 09:53 回复
>它们本质的区别是啥

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

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

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

persister

发表文章: 5
注册时间: 2008年04月17日 10:54
回复:回复:请教strategy 和 bridge的区别 发表: 2008年04月18日 10:51 回复
非常感谢banq的热情,本人对这句话“而Bridge是桥模式,是将对象行为和抽象分离”不是很理解,“对象行为和抽象分离”能具体并且通俗的解释一下吗
Jimny

发表文章: 2
注册时间: 2008年04月11日 16:53
re:请教strategy 和 bridge的区别 发表: 2008年04月18日 11:18 回复
http://www.jdon.com/designpatterns/bridge.htm
里面的咖啡加牛奶的例子很通俗。:)
slargy

发表文章: 7
注册时间: 2008年04月27日 12:57
re:请教strategy 和 bridge的区别 发表: 2008年04月30日 11:31 回复
对于"抽象和抽象行为分离"是手段
应用的情景是
随着抽象行为引入,继承结构或者抽象类爆炸式增长,用这种手段将不同的抽象行为进一步抽象成一个接口被抽象类引用,接口这一方实现多态,其中应用了适配器模式
bloodrate

发表文章: 7
注册时间: 2008年04月19日 21:29
re:请教strategy 和 bridge的区别 发表: 2008年05月08日 12:56 回复
桥模式主要应用背景是,
抽象类行为的具体实现中有重复的方法行为
比如按照原先的
照片和文档继承了资料抽象类,在具体的实现比如修改的时候是不是要特别为照片和文档写2个
修改的方法,但是如果这2个修改的方法具体实现是相同的(比如调用了另外库中的修改方法),那么不是重复了吗,这个时候就可以应用桥模式,将抽象成一个接口,并且对象应用,这样就可以不用一个一个去实现了
-------------------------------------------------------------------------------


照片和文档都继承了抽象类,那么可以将修改方法的实现写在抽象类里,子类不复写,这不就能保证这个方法在所有子类里都有了么?这个例子不能说明bridge的好处吧
这个主题有 6 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-07 jdon.com

anti spam