作者adrianshum (Alien)
看板OOAD
标题Re: [模式] composite与visitor两者之间的问题
时间Mon Oct 12 16:49:40 2009
※ 引述《EJwing (帅哥)》之铭言:
: 最近在看结城浩的design patterns,
: 看到composite与visitor的时候,
: 作者用了两个非常接近的例子,
: 我非常不能理解两着之间最大的差距在哪边,
: 当然,
: visitor把访问的实作分离出来,
: 这点是可以看的出来,
: 但是我就开始不明白了,
: 那这样还需要composite这种pattern吗?
: 或者应该说,
: 这两者分别强调哪些用途呢?
: 还有,
: 除了典型的file与folder、leaf与root之外,
: 还有什麽类似的需求,
: 是这麽的需要composite或是visitor来做呢?
: 最後,
: 这本书好难买啊..
: 不论是博客来还是诚品都没办法网购,
: 手上这本是图书馆的,
: 有没有其他管道可以买的到这本书啊..
: 不怎麽想用印的..=. =a
Composite 和 Visitor 的着眼点和解决的
问题是完全不同的.
Composite 在做的是 hierarchical 的包含
结构, 及之间的 'event propagtion'.
Visitor 则是面对某种结构, 把 "访问的方法",
与 "访问要做什麽" 分离出来, 让你可以替换
"访问要做什麽" 而不必动到 "访问的方法".
做的完全是不同范筹的东西, 有时也要互相配合,
比如用 composite pattern 来代表一份文件内容的
结构, 然後利用 Visitor pattern 来访问该文件
来把文件显示之类
其实我一向觉得, 要看 DP 的时候, 你先要看清楚最
开首几段, 关於该 Pattern 究竟在解决什麽问题, 这
样看才不会因为其他东西模糊了焦点. 有某些 pattern
的 class diagram 看起来很相似, 如果单从 "结果"
来看, 其实只会看得一头雾水. 要先了解该 pattern 的
"目的" 才能够了解其意义
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
※ 编辑: adrianshum 来自: 202.155.236.82 (10/12 16:55)
1F:推 EJwing :谢谢你的解说 它的习题的确有涉及到这个概念 10/12 17:32
2F:→ EJwing :可能是我资质驽钝 一时之间没能理解吧? 10/12 17:33