Czym jest kompozycja w Javie? Z przykładami

Opublikowany: 2023-01-27

Spis treści

Podstawy asocjacji w Javie:

Powiązanie można zdefiniować w Javie jako wzajemne połączenie między dwiema indywidualnymi klasami przy użyciu ich odrębnych obiektów. Typy relacji zarządzanych przez stowarzyszenie Java to:

  • Jeden do jednego: istnieje tylko jedna klasa pochodna dla każdej klasy nadrzędnej.
  • Jeden do wielu: Pojedyncza klasa nadrzędna może mieć więcej niż jedną klasę podrzędną.
  • Wiele do jednego: Pojedyncza klasa podrzędna może być powiązana z więcej niż jedną klasą nadrzędną.
  • Wiele do wielu: pewna liczba klas nadrzędnych może być powiązana z pojedynczą klasą podrzędną, a większa liczba klas podrzędnych może być powiązana z pojedynczą klasą nadrzędną.

Po ustanowieniu relacji klasy pochodne komunikują się z odpowiednimi klasami podstawowymi, aby ponownie wykorzystać ich cechy i właściwości. Istnieją dwa rodzaje powiązań w Javie. Są to agregacja i kompozycja.

Agregacja w Javie jest procesem bardziej uogólnionym w porównaniu do kompozycji. Te formularze są oparte na typie relacji obsługiwanej między klasami.

Wprowadzenie do kompozycji w Javie:

Technika projektowania w Javie, która implementuje relację Has-A, nazywana jest kompozycją. Proces dziedziczenia służy do ponownego wykorzystania kodu. Kompozycję w Javie można wykonać za pomocą zmiennej instancji odwołującej się do innych obiektów. Jeśli przedmiot stanowi inny przedmiot w taki sposób, że przedmiot składowy nie może istnieć bez przetrwania obiektu głównego, rodzaj relacji nazywany jest kompozycją. Mówiąc dokładniej, kompozycja jest aspektem, który opisuje odniesienie między dwiema lub więcej klasami za pomocą zmiennych instancji. W tym przypadku instancja powinna zostać utworzona przed użyciem zmiennych błyskawicznych. Weźmy przykład Biblioteki dla jasnego zrozumienia pojęcia „kompozycja”.

W bibliotece istnieje wiele książek. Każda książka ma odrębnych autorów i tytuły. W bibliotece powinien znajdować się również spis referencyjny książek. Biblioteka posiada również kilka książek związanych z tym samym tematem lub różnymi przedmiotami. Tutaj biblioteka odpowiada klasie głównej, a książki mogą być powiązane z klasą pochodną. Stowarzyszenie lub związek między książkami a biblioteką można uznać za kompozycję. Dzieje się tak, ponieważ klasa „Książki” jest całkowicie zależna od biblioteki klas. Na przykład, jeśli biblioteka zostanie zniszczona, wszystkie znajdujące się w niej książki również zostaną zniszczone.

Sprawdź nasze bezpłatne kursy technologiczne, aby uzyskać przewagę nad konkurencją.

Zapoznaj się z naszymi popularnymi kursami inżynierii oprogramowania

Magister informatyki na LJMU i IIITB Program certyfikacji cyberbezpieczeństwa Caltech CTME
Bootcamp programistyczny Full Stack Program PG w Blockchain
Executive PG Program w Full Stack Development
Zobacz wszystkie nasze kursy poniżej
Kursy inżynierii oprogramowania

Szczegółowy opis kompozycji w Javie:

Kompozycja jest formą powiązania Java. Dwie komunikujące się klasy są ze sobą silnie powiązane, przy czym klasa pochodna jest całkowicie zależna od klasy nadrzędnej. Niezależne istnienie klasy pochodnej nie jest w tym przypadku możliwe. Na przykład silnik bez samochodu nie może istnieć niezależnie. Ten typ asocjacji jest bardzo ograniczony w porównaniu z agregacją. Kompozycja jest techniką projektowania i nie należy jej mylić z funkcją Java.

Kompozycja może być używana do modelowania obiektów, których elementami składowymi są inne obiekty. Istnieje relacja ma między tymi obiektami. W tym typie powiązania jeden obiekt zawiera drugi obiekt. W związku z tym przedmiot składowy jest całkowicie zależny od głównego obiektu, jeśli chodzi o jego przetrwanie. Tak więc, jeśli obiekt zawierający jest zniszczony, ma to również wpływ na obiekt składowy. Relację kompozycji można zatem postrzegać jako część całości relacji, w której istnienie części bez całości nie jest możliwe. Innymi słowy, część jest automatycznie usuwana po usunięciu całości. Oznacza to, że całość ma ścisły związek z częścią.

Ucz się kursów programistycznych online z najlepszych światowych uniwersytetów. Zdobądź programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Umiejętności tworzenia oprogramowania na żądanie

Kursy JavaScript Podstawowe kursy języka Java Kursy dotyczące struktur danych
Kursy Node.js Kursy SQL Kursy rozwoju pełnego stosu
Kursy NTF Kursy DevOps Kursy Big Data
Kursy React.js Kursy Cyberbezpieczeństwa Kursy przetwarzania w chmurze
Kursy projektowania baz danych Kursy Pythona Kursy kryptowalut

Czym różni się dziedziczenie od kompozycji w Javie?

Należy zauważyć, że funkcjonalność dziedziczenia można osiągnąć również za pomocą kompozycji w Javie. Chociaż zarówno dziedziczenie, jak i kompozycja są używane do oferowania możliwości ponownego wykorzystania kodu przez powiązaną klasę, istnieją między nimi subtelne różnice. Główna różnica między tymi dwoma procesami polega na tym, że kompozycja jest techniką projektowania, w przeciwieństwie do dziedziczenia, które jest funkcją Javy. Inne główne różnice między tymi dwoma są wymienione w poniższej tabeli.

Parametr

Kompozycja

Dziedzictwo

Podstawowy Zawiera relację HAS-A. Zawiera relację IS-A.
Ponowne użycie kodu Kod może być ponownie użyty w wielu klasach. Ponowne użycie kodu jest możliwe tylko w jednej klasie, ponieważ tylko jeden interfejs może być rozszerzony o klasę.
Zakres Można to łatwo wykonać w czasie wykonywania. Funkcje są lepiej realizowane w czasie kompilacji.
Finał Ułatwia ponowne wykorzystanie kodu nawet z ostatnich zajęć. Kod z klas końcowych nie może być ponownie wykorzystany w przypadku dziedziczenia.
Metody Metody nie są ujawnione. Do ich interakcji wykorzystywane są interfejsy publiczne. Dziedziczenie udostępnia zarówno chronione, jak i publiczne metody klasy bazowej.

Różnice między agregacją a kompozycją:

Zbiór

Kompozycja

Jest to rodzaj słabego powiązania Java. Jest to silniejszy typ asocjacji w porównaniu z agregacją.
Klasa pochodna jest niezależna od klasy bazowej. W związku z tym klasa pochodna może nadal istnieć, nawet jeśli klasa podstawowa zostanie zniszczona. Klasa pochodna jest całkowicie zależna od klasy bazowej. Dlatego podklasa nie może istnieć, jeśli nadklasa zostanie zniszczona.
Klasa podrzędna ma swój własny czas życia. Czas życia klasy potomnej zależy od klasy nadrzędnej.
Klasa nadrzędna używa klasy podrzędnej w tego typu powiązaniach. W związku z tym klasa pochodna nie jest własnością klasy podstawowej. W tym typie powiązania klasa nadrzędna jest właścicielem klasy podrzędnej. W związku z tym klasa nadrzędna jest właścicielem klasy podrzędnej.
Stanowi relację HAS-A. Klasa pochodna ma klasę bazową. Stanowi część relacji. Klasa pochodna jest częścią klasy bazowej.
Słowo kluczowe final nie jest używane do oznaczania agregacji. Słowo kluczowe final może być użyte do oznaczenia składu.
Przykład: samochód ma kierowcę. Przykład: Silnik jest częścią samochodu.

Przeczytaj nasze popularne artykuły związane z tworzeniem oprogramowania

Jak zaimplementować abstrakcję danych w Javie? Co to jest klasa wewnętrzna w Javie? Identyfikatory Java: definicja, składnia i przykłady
Zrozumienie enkapsulacji w OOPS z przykładami Wyjaśnienie argumentów wiersza poleceń w języku C 10 najważniejszych funkcji i cech przetwarzania w chmurze w 2022 r
Polimorfizm w Javie: pojęcia, typy, cechy charakterystyczne i przykłady Pakiety w Javie i jak z nich korzystać? Samouczek Git dla początkujących: Naucz się Git od podstaw

Zalety używania kompozycji w Javie:

  • Kompozycja ułatwia ponowne wykorzystanie kodu Java.
  • Chociaż dziedziczenie wielokrotne nie jest obsługiwane przez Javę, lukę można wypełnić tą techniką projektowania.
  • Używając kompozycji, klasa może być testowana pod kątem umiejętności w lepszy sposób.
  • Kod jest bardziej elastyczny dzięki zastosowaniu kompozycji. Złożoną implementację klasy można zastąpić ulepszoną wersją.
  • Członkowie obiektu mogą być zmieniani w czasie wykonywania w celu dynamicznej zmiany zachowania programu z wykorzystaniem relacji kompozycji.

Ograniczenia kompozycji w Javie:

Używanie kompozycji w Javie ma kilka wad. Główną wadą kompozycji obiektowej jest to, że użytkownikowi trudniej jest zrozumieć zachowanie zaimplementowanego systemu poprzez samo zastanowienie się nad kodem źródłowym. System wykorzystujący kompozycję obiektów ma charakter wysoce dynamiczny. Tak więc zrozumienie funkcjonowania systemów wykorzystujących kompozycję obiektową wymaga głębszej analizy kodu źródłowego i uruchomienia kodu w celu zaobserwowania funkcjonowania i współpracy pomiędzy poszczególnymi obiektami w kodzie źródłowym.

Jeśli chcesz dowiedzieć się więcej o Javie, pełnym rozwoju oprogramowania, sprawdź program Executive PG PG in Software Development - Specialization in Full Stack Development upGrad & IIIT-B, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia , 9+ projektów i zadań, status absolwenta IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w znalezieniu pracy w najlepszych firmach.

Chcesz udostępnić ten artykuł?

Przygotuj się na karierę przyszłości

Aplikuj teraz na studia magisterskie z inżynierii oprogramowania