Я создаю код для 2D-графика сцены, и у меня есть один абстрактный класс, узел, который будет использоваться для указания того, что тип элемента может использоваться в графе сцены. Однако классы, которые реализуются из этого, имеют разные типы, такие как листовые узлы и узлы преобразования. Как бы я указал эти различия? я бы использовал атрибуты, другие интерфейсы или что?Как я могу указать на различия в этой ситуации?
Редактировать: Похоже, что я дал недостаточно информации. Вот как можно больше информации, как я могу предоставить на моей нынешней иерархии:
- интерфейс INode
- требует Матрицу под названием TransformationMatrix
- требует Список Inodes называется Дети
- требует Узла называется Parent
- требует, чтобы метод был реализован как Draw, который принимает одну матрицу в качестве аргумента и ничего не возвращает
- класс Node
- реализует интерфейс INode
- Draw вызов (виртуальный вакуум с 1 аргументом типа матрицы) просто вызывает у каждого ребенка метод Draw INode в.
- различные классы, производные от узла
- эти фактические узлы и могут быть узлы трансформации, листовые узлы и т.д.
Это может немного помочь: http://blogs.msdn.com/ericlippert/archive/2009/02/02/properties-vs-attributes.aspx –
Это, казалось бы, указывает, что я использую атрибуты (я пытаясь указать, какой тип узла имеют производные классы), однако я не совсем уверен, что это лучший вариант. – RCIX
Является ли тип узла фактом о механизме класса или фактом того, что класс используется для представления? –