uml kompozycja i powiązanie

0

Jaka jest różnica pomiędzy kompozycją a powiązaniem ?
Na różnych forach znalazłem inne odpowiedzi.
Jedną z nich była że przy kompozycji jest dodatkowy kod usuwający składowe obiektu
który zawiera dana klasa. Czy w javie powiązanie i kompozycja byłaby równoważna ?
Po skasowaniu referencji do obiektów byłyby automatycznie usuniete z pamięci.
Innym wyjaśniem które znalazłem było że różnicą jest to że przy powiązaniu klasa może
zawierać obiekty klas z których dziedziczy.

0

Wygląda to tak.

Powiązanie :

Powiązanie stosujemy wtedy, gdy dwie klasy są w takiej relacji, że istniejące typy relacji UML-a są nie wystarczające do określenia zachowań tych dwóch klas. Czyli na przykład mamy klasy Firma i Pracownik.

Firma <------------ Pracownik
+pracuje

Oznacza, że pracownik świadczy jakieś usługi firmie. Czyli klasa pracownik wykonuje jakieś operacje na rzecz klasy Firma.

Kompozycja :

To ogólnie specjalny przypadek zawierania. Tylko z jedną różnicą. Mamy dwie klasy, A i B. Klasa B jest zawarta w klasie A. I teraz różnica : klasa B nie może posiadać samodzielnych instancji. Czyli na przykład ekran monitora nie może istnieć osobno, jest zawsze składową monitora.

1 użytkowników online, w tym zalogowanych: 0, gości: 1