Je suis le code de construction pour un graphe de scène 2D et j'ai une seule classe abstraite, noeud qui sera utilisé pour indiquer qu'un type d'élément peut être utilisé dans un graphe de scène. Cependant, les classes implémentées à partir de ce type sont de types différents, tels que les nœuds feuilles et les nœuds de transformation. Comment pourrais-je indiquer ces différences? est-ce que j'utiliserais des attributs, d'autres interfaces, ou quoi?Comment indiquer les différences dans cette situation?
Modifier: Il semblerait que j'ai donné des informations insuffisantes. Voici autant d'informations que je peux fournir sur ma hiérarchie actuelle:
- interface INode
- nécessite une matrice appelée TransformationMatrix
- nécessite une liste des inodes appelés enfants
- nécessite un nœud appelé Parent
- nécessite la mise en œuvre d'une méthode appelée Draw qui prend une matrice comme argument et ne renvoie rien
- classe Node
- implémente l'interface INode
- appel Draw (vide virtuel avec 1 argument de la matrice de type) appelle simplement chaque enfant méthode de dessin de INode.
- diverses classes qui dérivent du noeud
- ce sont des nœuds réels et peuvent être des noeuds de transformation, nœuds feuilles, etc.
Cela pourrait aider un peu: http://blogs.msdn.com/ericlippert/archive/2009/02/02/properties-vs-attributes.aspx –
Cela semblerait indiquer que je devrais utiliser des attributs (je suis en essayant d'indiquer quel type de nœud les classes dérivées sont), cependant je ne suis pas entièrement convaincu que c'est la meilleure option. – RCIX
Le type de nœud est-il un fait sur le mécanisme de la classe, ou un fait sur ce que la classe est utilisée pour représenter? –