Kurs Java #14 Agregacja i kompozycja

Java

Loading

W poprzednich lekcjach poznawałeś klasy i obiekty oraz podstawowe relacje w Javie, takie jak dziedziczenie. Dziś skupimy się na agregacji i kompozycji, które pokazują, jak obiekty mogą ze sobą współpracować.

W artykule wyjaśnimy, czym różni się agregacja od kompozycji, jak tworzyć takie powiązania między obiektami i kiedy warto je stosować. Dzięki temu uporządkujesz swoją dotychczasową wiedzę i przygotujesz się do bardziej zaawansowanych tematów w Javie.

Wprowadzenie

Agregacja i kompozycja to dwa rodzaje relacji między obiektami w Javie, które pozwalają tworzyć bardziej złożone i elastyczne struktury.

Agregacja to relacja między klasami, w której jeden obiekt posiada lub używa inny obiekt, który może istnieć samodzielnie. Obiekty pozostają powiązane, ale niezależne – można je tworzyć i usuwać osobno.

Kompozycja natomiast to relacja, która wiąże obiekt posiadany bezpośrednio z obiektem głównym. Tworzysz obiekt posiadany w konstruktorze obiektu głównego i nie może on istnieć poza nim.

Dzięki zrozumieniu tych relacji możesz tworzyć bardziej złożone obiekty, zachowując przejrzystość kodu i kontrolę nad tym, które elementy są niezależne, a które integralne.

Agregacja w Javie

Agregacja w Javie realizowana jest poprzez przechowywanie referencji do istniejących obiektów w polach klasy. Zwykle tworzysz obiekt posiadany osobno, dzięki czemu może on istnieć niezależnie od obiektu głównego.

Weźmy na przykład sytuację, w której osoba posiada samochód, ale samochód może istnieć niezależnie.

Przykład:

Jak widać w powyższym przykładzie zniszczenie lub usunięcie obiektu osoby, nie spowoduje automatycznie zniszczenia samochodu. To jest typowy przykład agregacji – obiekty są powiązane, ale niezależne.

Kompozycje w Javie

Kompozycja to relacja między obiektami, w której obiekt posiadany nie może istnieć samodzielnie – jest ściśle związany z obiektem głównym. W praktyce oznacza to, że tworzysz obiekt posiadany zwykle w konstruktorze obiektu głównego, a on nie istnieje poza nim.

Weźmy na przykład: książkę i stronę – książka posiada stronę, a strona nie istnieje poza książką.

Przykład:

Na powyższym przykładzie widać, że nie możesz używać stron poza książką, ponieważ tworzą integralną część obiektu. Jest to typowy przykład kompozycji.

Podsumowanie

Agregacja i kompozycja to dwa podstawowe rodzaje relacji między obiektami w Javie, które pozwalają budować bardziej złożone i elastyczne struktury. Agregacja jest relacją słabą, w której obiekt posiadany może istnieć niezależnie od obiektu głównego. Obiekty są powiązane, ale nie są zależne od siebie. Kompozycja natomiast to relacja silna, w której obiekt posiadany nie może istnieć samodzielnie i jego byt jest ściśle związane z obiektem głównym.

Zrozumienie tych relacji pozwala lepiej organizować kod, kontrolować zależności między obiektami i tworzyć programy bardziej czytelne oraz łatwiejsze w utrzymaniu.

W kolejnym artykule zagłębimy się w interfejsy, które pozwolą tworzyć jeszcze bardziej zaawansowane i profesjonalne programy w Javie.

O autorze

Adam Mingielewicz

Tester oprogramowania z pasją do jakości i technologii. Łączy doświadczenie w testach manualnych i automatycznych, koncentrując się przede wszystkim na aplikacjach webowych oraz usługach SOAP i REST. Testowanie to dla niego nie tylko szukanie błędów, ale przede wszystkim kwestionowanie przyjętych założeń i usprawnianie tego, co nie działa – również w samym procesie testowym. Lubi zmieniać, angażować się i aktywnie budować proces testowy, tak by miał sens, a nie tylko formę. Prywatnie fan rocka, biwakowania, podróży.