![]()
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
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.
