Question

Je suis en train de jouer autour de la composition d'un couple d'objets.

J'ai deux classes (de la Note et de la tâche).La Tâche de la classe est dérivée de la classe comme une tâche est une extented note.

Chaque note dispose d'une propriété Property Child as list (of note) comme une note ou d'une tâche peut être ajouté à une note existante, ou d'une tâche (par conséquent, cette "enfant", note pourrait être une tâche ou une note)

c'est à dire.

dim x as new note()

x.Child.item(0).Child.item(0).Child.item(0).description.ToString()

la finale de l'enfant objet de remarque est en fait une tâche, comment puis-je faire de l'agrégation de travail?je n'ai pas de soins si le son d'une note ou d'une tâche, mais je tiens à la libération de la fonctionnalité de la base ou de la prolongation de la classe.

Mes premières pensées ont été que chaque objet doit avoir une liste de tâches et d'une liste de notes, mais il se sent comme il pourrait y avoir une solution plus élégante.

Ne quelqu'un a des idées sur ce point?

Était-ce utile?

La solution

Vous êtes à la collection d'objets de Note devrait déjà vous donner ce que vous voulez.

Si vous avez besoin de différencier entre la Note et la Tâche vous pouvez demander si l'exemple est un "typeof" Tâche puis coulé de manière appropriée pour obtenir le dérivé de propriétés et de méthodes.

Si les méthodes et les propriétés dont vous avez besoin sont une partie de la classe de base, vous n'avez pas besoin de cast, vous pouvez compter sur le polymorphisme d'appeler le type approprié de la méthode/de la propriété.

Autres conseils

Si je vous comprends bien, vous devriez être mise en œuvre le comportement de votre classe avec ce que nous C# disent virtuel méthodes / propriétés...Essentiellement, ils utilisent fin des appels entrants en sorte que la fonctionnalité appropriée est appelée à partir de la classe correcte - être que le parent ou la classe dérivée.

Je pense que le VB.Net equivilent est "Remplaçable" et "Remplace".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top