Agregacja (programowanie obiektowe)
![]() | Zobacz też: inne znaczenia wyrazu „agregacja”. |
Agregacja (inaczej zawieranie się, gromadzenie) – sytuacja, w której tworzy się nową klasę, używając klas już istniejących (często nazywa się to „tworzeniem obiektu składowego”). Nowa klasa może być zbudowana z dowolnej liczby obiektów (obiekty te mogą być dowolnych typów) i w dowolnej kombinacji, by uzyskać żądany efekt. Agregacja jest często określana jako relacja typu „zawiera” np. „samochód zawiera silnik” – gdzie „samochód” i „silnik” są klasami, oraz klasa „samochód” zawiera w sobie obiekt (czasami referencję czy wskaźnik) typu „silnik”.
Agregacja jest często przedstawiana w opozycji do dziedziczenia, które polega na uszczegóławianiu typu ogólnego w celu utworzenia typu szczególnego. Agregacja nie tworzy podtypu, lecz nowy typ.
Na diagramach UML agregację oznacza się pustym rombem.
Kompozycja
![]() | Zobacz hasło kompozycja w Wikisłowniku |
Szczególnym przypadkiem agregacji jest kompozycja, która oznacza składanie się obiektu z obiektów składowych, które nie mogą istnieć bez obiektu głównego. Kompozycja jest relacją typu „posiada”.
Kompozycja oznacza, że dana część może należeć tylko do jednej całości. Oznacza również, że część nie może istnieć bez całości, a usunięcie całości powoduje automatyczne usunięcie wszystkich jej części, związanych z nią związkiem kompozycji.
Na diagramach UML kompozycję oznacza się wypełnionym rombem.