Ich baue Code für ein 2D-Szenen-Diagramm und ich habe eine einzelne abstrakte Klasse, Knoten, der verwendet wird, um anzuzeigen, dass ein Elementtyp in einem Szenegraph verwendet werden kann. Klassen, die davon implementiert werden, sind jedoch von unterschiedlichen Typen wie Blattknoten und Transformationsknoten. Wie würde ich diese Unterschiede anzeigen? Würde ich Attribute, andere Schnittstellen oder was?Wie zeige ich Unterschiede in dieser Situation an?
Bearbeiten: Es scheint, dass ich unzureichende Informationen gegeben habe. Hier ist, so viele Informationen wie ich auf meiner aktuellen Hierarchie zur Verfügung stellen kann:
- INode Schnittstelle
- eine Matrix TransformationMatrix genannt erfordert
- erfordert eine Liste der INodes genannt Kinder
- einen Knoten namens erfordert Eltern
- erfordert, dass eine Methode namens Draw implementiert wird, die eine Matrix als Argument akzeptiert und nichts zurückgibt
- Node-Klasse
- implementiert die Inode-Schnittstelle
- Draw-Aufruf (virtual void mit 1 Argument vom Typ Matrix) ruft einfach jedes Kind INode der Draw-Methode.
- verschiedene Klassen, die
- diese sind tatsächlich Knoten von Knoten ableiten und können Sie Transformations Knoten, Blattknoten usw.
Das könnte ein wenig helfen: http://blogs.msdn.com/ericlippert/archive/2009/02/02/properties-vs-attributes.aspx –
Das würde bedeuten, dass ich Attribute verwenden sollte (ich bin Versuchen Sie anzugeben, welche Art von Knoten, die abgeleiteten Klassen sind), aber ich bin nicht ganz davon überzeugt, dass dies die beste Option ist. – RCIX
Ist der Typ des Knotens eine Tatsache über den Mechanismus der Klasse oder eine Tatsache darüber, wofür die Klasse verwendet wird? –