Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 0
  • 1.1K

Agregacja i kompozycja to dwa rodzaje asocjacji  reprezentowane w diagramach UML linią zakończoną rombem (w kompozycji romb jest wypełniony). Jaka jest rola tych relacji i czym się one różnią?

Uczestnik szkolenia
  • Zapytał
  • @ Uczestnik szkolenia | 28.06.2013

Odpowiedzi (2)

  • 0

Relacje agregacji jak i kompozycji to specjalne rodzaje asocjacji, więc podobnie do niej przedstawiają relacje posiadania  np. człowiek posiada samochód. 

Kompozycja wprowadza jednak istotną różnicę. Łącząc dwie klasy relacją zakończoną wypełnionym rombem, wskazujemy, że klasa, przy której stoi romb, składa się z obiektów drugiej klasy. Relacja ta wiąże silnie cykl życia obiektów tych klas, np. kamienica składa się z mieszkań – likwidując kamienice, mieszkania także przestają istnieć.

Agregacja to dokładne przeciwieństwo kompozycji – używamy jej wtedy, jeżeli chcemy wyraźnie zaznaczyć, że powiązane obiekty mogą też swobodnie istnieć bez siebie, np. lampa i żarówka, samochód i koła.

  • Odpowiedział
  • @ | 28.06.2013
  • TRENER ALTKOM AKADEMII
  • 0

A czym się różni agregacja od zwykłej asocjacji?

Tym, że agregacja wyraźnie wprowadza pewną hierarchię typu część-całość. Dlatego zwyczajowo rysujemy agregację i kompozycję pionowo (rombem do góry), a asocjację poziomo. Dodatkowo agregacja i kompozycja (w przeciwieństwie do asocjacji) nie mogą być zwrotne (część nie może stać się swoją własną całością). To oczywiście na poziomie obiektów, nie klas.

  • Odpowiedział
  • @ | 06.07.2014
  • TRENER ALTKOM AKADEMII