Re: [模式] composite與visitor兩者之間的問題

看板OOAD作者 (Alien)時間15年前 (2009/10/12 16:49), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《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)

10/12 17:32, , 1F
謝謝你的解說 它的習題的確有涉及到這個概念
10/12 17:32, 1F

10/12 17:33, , 2F
可能是我資質駑鈍 一時之間沒能理解吧?
10/12 17:33, 2F
文章代碼(AID): #1AqksboZ (OOAD)
文章代碼(AID): #1AqksboZ (OOAD)