Aggregation und Komposition

Aggregation (schwacher Besitz)   


Aggregation


Das Aggregationsobjekt teilt sich das Teilobjekt mit anderen Aggregationsobjekten.
Die Lebensdauer des Teilobjekts ist unabhängig von der Lebensdauer des besitzenden Objekts.

  1. Teilnehmer teilnehmer = new Teilnehmer();
  2. Kurs kurs1 = new Kurs();
  3. Kurs kurs2 = new Kurs();
  4.  
  5. kurs1.addTeilnehmer(teilnehmer);    // Vom teilnehmer-Objekt wird lediglich
  6. kurs2.addTeilnehmer(teilnehmer);    // die Referenz (Adresse) kopiert und übergeben


Komposition (starker Besitz)


Komposition


Dem Kompositionsobjekt gehört das Teilobjekt allein und die Teilobjekte können nicht ohne ihr Kompositionsobjekt existieren.
Die Lebensdauer des Teilobjekts ist von der Lebensdauer des Kompositionsobjekts abhängig!


  1. Firma firma = new Firma();
  2. firma.addAbteilung(new Abteilung());   // Das Abteilungsobjekt wird bei der Parameterübergabe
  3.                                        // erzeugt und existiert nicht außerhalb des firma-Objekts


oder z.B. so:

  1. class Firma
  2. {
  3.     private List<Abteilung> abteilungen = new List<Abteilung>();
  4.  
  5.     public void createAbteilung()
  6.     {
  7.         Abteilung abteilung = new Abteilung();  // Auch so existiert das Objekt abteilung
  8.         abteilungen.Add(abteilung);             // nicht außerhalb des Firmenobjekts
  9.     }
  10. }





Last modified: Wednesday, 6 December 2017, 12:32 PM