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