Re: [模式] composite与visitor两者之间的问题

楼主: adrianshum (Alien)   2009-10-12 16:49:40
※ 引述《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 的
"目的" 才能够了解其意义

Links booklink

Contact Us: admin [ a t ] ucptt.com