У меня есть класс с именем «Tree», который реализует древовидную структуру данных с неоднородными узлами (у меня есть три вида узлов). В соответствии с принципами объектно-ориентированного программирования, класс Just должен обладать знаниями о деталях обработки и управления деревом, а также о некоторых операциях, таких как сложение, поиск и т. Д.
В моем графическом интерфейсе я хочу добавить иерархии экземпляра этого класса Tree в компонент treeView. Опять же, в соответствии с принципами объектно-ориентированного программирования, treeView не имеет информации о внутренней структуре дерева, а внутренняя структура дерева инкапсулирована, а класс Tree представляет абстрактный интерфейс для дерева.
Таким образом, класс «Tree» может добавлять узлы тоже к компоненту treeView, но я не предпочитаю, чтобы класс «Tree» обладал знаниями о уровне представления и знал, как добавлять узлы в специальный компонент, такой как treeView.
Вопрос в том, что я ищу такой способ, как использование интерфейсов или делегатов или что-то вроде этого, чтобы класс «Tree» итерировал по дереву и отправлял информацию для внешнего класса, но с учетом иерархий дерева структура.