Implementierung der Zusammensetzung und Aggregation in C #? [geschlossen]

7

Wie kann ich / (was ist der beste Weg) die Zusammensetzung und Aggregation in C # implementieren?

Danke 123Developer

    
123Developer 17.04.2009, 06:07
quelle

2 Antworten

20

Das ist eine ziemlich abstrakte Frage, wenn man bedenkt, dass sowohl Komposition als auch Aggregation ist ziemlich ähnlich & amp; wirklich nur konzeptionell anders und nicht unbedingt auf Codeebene. (d. h. Sie könnten ein Auto mit einer Engine als Komposition betrachten, und ein Hund mit Flöhen als Aggregation, aber es gibt nichts, was Sie davon abhält, sie auf die gleiche Weise zu implementieren, wenn Sie sie in Code modellieren).

Wenn Sie jedoch die Differenzen & amp; versuchen & amp; gewaltsam hinzufügen Software-Design-Entscheidungen, um diese Unterschiede hervorzuheben Ich denke, Sie könnten so etwas tun ... unter ein Beispiel aus Wikipedia :

  

Die Aggregation unterscheidet sich von der gewöhnlichen Zusammensetzung dadurch, dass sie kein Eigentum impliziert. Wenn in der Komposition das besitzende Objekt zerstört wird, sind es auch die enthaltenen Objekte. In der Aggregation ist dies nicht unbedingt der Fall. Zum Beispiel besitzt eine Universität verschiedene Abteilungen (z.B. Chemie) und jede Abteilung hat eine Anzahl von Professoren. Wenn die Universität schließt, werden die Abteilungen nicht mehr existieren, aber die Professoren in diesen Abteilungen werden weiter existieren. Daher kann eine Universität als eine Zusammensetzung von Abteilungen gesehen werden, während Abteilungen eine Ansammlung von Professoren haben. Außerdem könnte ein Professor in mehr als einer Abteilung arbeiten, aber eine Abteilung könnte nicht Teil von mehr als einer Universität sein.

Sie können diesen Code erstellen, um ihn darzustellen (mit so vielen konstruierten Hinweisen für die Zusammensetzung / Aggregation):

%Vor%     
Alconja 17.04.2009, 07:41
quelle
5

Nun, in einer Garbage-Collection-Welt, in der auf alle Objekte über Referenzen zugegriffen wird, verwischt der feine Unterschied (im Besitz) zwischen strenger Komposition und Aggregation ein wenig - so in allgemein (wenn Klassen verwendet werden) kocht auf ein Feld für das andere Objekt oder die Sammlung:

%Vor%

Wenn ich den Punkt verpasst habe, bitte klar ...

Die Dinge sind bei der Diskussion von struct s komplizierter - aber im Allgemeinen, wenn über OO-Konzepte gesprochen wird, ist die Verwendung von struct auf Wertfelder beschränkt ...

    
Marc Gravell 17.04.2009 07:32
quelle

Tags und Links