`
alan0509
  • 浏览: 10381 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Bridge(桥接)---对象结构型模式

阅读更多
在读本文之前,请先阅读如下文章
第一篇 http://linshiquan.iteye.com/blog/1036064

第二篇 http://www.jdon.com/designpatterns/bridge.htm

对于第一篇,我给出如下疑问?
1,“1.派生类是完全不同逻辑的类,四边形和圆
     2.两种画法
    意思是
    画四边形会分别用到两种画法里面的drawLine
    画圆会用到两种画法的drawCricle ”

画四边形用到两种画法里面的drawLine,竟然四边形只用到drawLine方法,为什么不放在四边形类中,而非要放在作者定义的
  V1Drawing,V2Drawing。你就是直接把这两个方法放在一个类中也比放在两个类中强 。作者意思如果今后想画V3Drawing那么我还需要建立一个3D的类?
这里我不继续讨论对模式的误解,留给自己慢慢分析。
难道我只想要2D时 还需要带着1D的实现吗?

对于第二篇文章,个人认为例子举出的非常好,很形象的说明了Bridge模式的真正功用。但对bridge的描述上有一些问题。
而上面的例子很好的实现了,当我只需要大杯时,在我的类中将小杯类去掉即可。
“将抽象和行为划分开来,各自独立,但能动态的结合。”我觉得更应该是 将抽象属性(不是一般意义上的属性,例如车具有车轮属性。这所说的属性具有抽象的意义,如杯子的形状,有大有小,当一件具有杯子属性的对象出现时,便应该使用bridge模式,抽象属性和行为之间的关系重叠的越到越能发挥bridge的优势。) 和行为划分开来。

如果是为了将行为区分开来,我觉得更适合用策略模式。

个人见解。
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics