我有一個名爲'Tree'的類,它實現了具有非同類節點的樹數據結構(我有三種類型的節點)。根據面向對象編程的原則,只是「樹」類必須具有關於處理和管理樹的細節以及諸如添加,搜索等的一些操作的知識。迭代樹數據結構並通過考慮樹的層次結構將信息發送到外部類
在我的GUI中,我想添加層次結構該TreeView類的一個實例的一個TreeView組件。再次根據面向對象編程的原則,treeView沒有關於樹的內部結構的信息,並且樹的內部結構被封裝並且'Tree'類表示樹的抽象接口。
所以'Tree'類可以添加節點treeView組件,但我不喜歡'Tree'類具有關於表示層的知識,並且知道如何將節點添加到像treeView這樣的特殊組件。
問題是,我正在尋找一種方式,比如使用接口或委託或類似的東西,「樹」類在樹上迭代併發送外部類的信息,但通過考慮層次結構樹結構。
使用複合模式(http://en.wikipedia.org/wiki/Composite_pattern)爲您的樹層次結構類建模使用的算法。 – Heisenbug 2011-06-09 13:51:48