Programowanie obiektowe jest powszechnym paradygmatem wykorzystywanym przy tworzeniu oprogramowania. Obiekt jest instancją klasy tworzonej przez klasy. Obiekty współpracują ze sobą za pośrednictwem łączy. Łącza to fizyczne i koncepcyjne połączenie między obiektami. Zbiór łączy o podobnej strukturze i semantykach jest opisany jako powiązanie .
Wykres porównania
Podstawa do porównania | Zbiór | Kompozycja |
---|---|---|
Podstawowy | W agregacji występuje związek, w którym dziecko może istnieć niezależnie od rodzica. | W składzie nie może istnieć niezależnie od rodzica. |
Rodzaj relacji | "ma" | "część" |
Typ powiązania | Słabe skojarzenie | Silne powiązanie |
Symbol projektu UML | Reprezentowany przez pustego rombu obok klasy montażowej. | Reprezentowany przez solidny diament obok klasy montażowej. |
Funkcjonować | Usunięcie zespołu nie wpływa na jego części. | Jeśli obiekt klasy posiadający zostanie usunięty, może znacząco wpłynąć na obiekt klasy zawierającej. |
Definicja agregacji
Agregację można zdefiniować jako relację z klasą złożenia do klasy składowej. Relację między dwoma obiektami można przedstawić, rysując segment linii w języku UML (Unified Modeling Language).
Na przykład samochód składa się z kół, silnika, skrzyni biegów, układu kierowniczego, głównego nadwozia itp. Samochód jest zespołem, a pozostałe części są jego składnikami. Samochód na koła to jedna agregacja, samochód do silników to kolejna agregacja i tak dalej. Każde indywidualne parowanie jest zdefiniowane w celu określenia mnogości każdej części składowej w zespole, jako wynik liczby obiektów można również przedstawić.
Agregacja jest typem powiązania, które opisuje typ relacji między obiektami. Na przykład samochód "ma" skrzynię biegów, a samochód "ma" silnik . Dla relacji jeden-do-wielu przykładem jest samochód " mający " wiele kół .
Definicja kompozycji
Kompozycja jest również rodzajem stowarzyszenia, ale bardziej restrykcyjną formą. Jest on reprezentowany w języku UML za pomocą niewielkiego bryły diamentowej sąsiadującej z klasą montażu.
Tak więc kompozycja oznacza własność części składowej całości. To ostatecznie zwiększy wygodę programowania. Kompozycja może wyzwalać usunięcie obiektu składowego przez usunięcie obiektu złożenia.
Kompozycja opisuje związek "części" . Na przykład liść jest częścią drzewa, jeśli drzewo jest zniszczone, liście muszą zostać zniszczone.
Kluczowe różnice między agregacją a składem
- Agregacja wskazuje związek, w którym dziecko i jednostka nadrzędna mogą istnieć niezależnie. W przeciwieństwie do kompozycji, jednostka podrzędna jest zależna od rodzica.
- W agregacji istnieje relacja "ma", podczas gdy w kompozycji występuje "część" związku między złożeniem a obiektami klasy składowej.
- Agregacja jest słabym powiązaniem, podczas gdy kompozycja jest silnym związkiem, ponieważ ma więcej ograniczeń.
- W projekcie UML agregacja jest opisana przez pustą bryłę. W przeciwieństwie do tego, kompozycję wyobraża solidny diament.
Wniosek
W agregacji części składowe mają niezależne istnienie i mogą być współdzielone lub ponownie przypisane do agregatów lub ich zespołów. Z drugiej strony, w składzie, część składowa należy do dokładnie jednego zespołu lub agregatu. Ponadto część jest tworzona, gdy agregat jest tworzony, a część jest niszczona, gdy agregat jest niszczony.