【发布时间】:2011-06-09 13:48:07
【问题描述】:
我有一个名为“Tree”的类,它实现了具有非同质节点的树数据结构(我有三种节点)。根据面向对象编程的原则,“树”类必须了解处理和管理树的细节以及一些操作,如添加、搜索等。
在我的 GUI 中,我想将该“树”类的实例的层次结构添加到 treeView 组件中。再次根据面向对象编程的原则,treeView没有树的内部结构信息,树的内部结构被封装,'Tree'类代表树的抽象接口。
所以'Tree'类也可以添加节点treeView组件,但我不喜欢'Tree'类有关于表示层的知识并且知道如何将节点添加到像treeView这样的特殊组件。
问题是我正在寻找一种方法,例如使用接口或委托或类似的东西,“树”类在树上迭代并发送外部类的信息,但要考虑树的层次结构结构。
【问题讨论】:
-
使用复合模式 (en.wikipedia.org/wiki/Composite_pattern) 对树层次结构类进行建模。
标签: c# oop data-structures treeview tree