Kluczowa różnica – agregacja a kompozycja w Javie
Agregacja to skojarzenie między dwoma obiektami, które opisuje relację „ma-a”. Kompozycja jest bardziej specyficznym typem agregacji, który implikuje własność. Kluczowa różnica między agregacją a kompozycją w Javie polega na tym, że jeśli zawarty obiekt może istnieć bez istnienia obiektu będącego właścicielem, jest agregacją, a jeśli zawarty obiekt nie może istnieć bez istnienia obiektu będącego właścicielem, jest kompozycją.
Programowanie zorientowane obiektowo (OOP) to główny paradygmat w tworzeniu oprogramowania. Służy do modelowania oprogramowania za pomocą obiektów. Obiekty tworzone są za pomocą klas. Klasa składa się z właściwości i metod. W oprogramowaniu jest wiele obiektów. Każdy obiekt współpracuje ze sobą poprzez przekazywanie wiadomości. Relacja między dwoma obiektami nazywana jest asocjacją. Zarówno agregacja, jak i kompozycja to dwa rodzaje asocjacji. Relacja „ma-a” opisuje, że jeden obiekt może używać innego obiektu. Agregacja i kompozycja mogą być zaimplementowane w językach obsługujących OOP. Jeśli zawarty obiekt może istnieć bez istnienia obiektu będącego właścicielem, to skojarzenie między tymi dwoma obiektami jest agregacją. Jeśli zawarty obiekt nie może istnieć bez istnienia obiektu będącego właścicielem, to skojarzenie między tymi dwoma obiektami jest kompozycją.
Co to jest agregacja w Javie?
Agregacja to rodzaj skojarzenia. Jeśli klasa ma odwołanie do jednostki, nazywa się to agregacją. Agregacja reprezentuje relację ma. Obiekt Student może mieć właściwości takie jak student_id, name, address. Ten obiekt może mieć również inny obiekt o nazwie adres z własnymi informacjami, takimi jak miasto, województwo, kraj. W takiej sytuacji Student posiada adres referencyjny podmiotu. Jest to relacja typu „posiada”.
Rysunek 01: Klasa oznaczeń
Rysunek 02: Główny program do opisu agregacji
Zgodnie z powyższym programem, oceny klasowe składają się z trzech właściwości, którymi są oceny z matematyki, języka angielskiego i nauk ścisłych. Student posiada przedmiot ocen. Ma swoje właściwości, które są oznaką matematyki, języka angielskiego i nauk ścisłych. W metodzie głównej tworzony jest obiekt Marks i przypisywane są wartości znaków. Obiekt ucznia, którym jest s1 może używać obiektu ocen, którym jest m1. Dlatego Uczeń i Marks mają relację „ma-a”. Obiekt Marks może istnieć bez obiektu Student. Dlatego jest to agregacja.
Co to jest kompozycja w Javie?
Kompozycja to rodzaj skojarzenia. Jest to specyficzna forma agregacji, która implikuje własność. Załóżmy, że istnieją dwie klasy zwane klasami A i B. Jeśli obiekt klasy B nie może istnieć, jeśli obiekt klasy A zostanie zniszczony, to jest to kompozycja. Książka składa się z wielu stron. Jeśli księga zostanie zniszczona, zniszczą się również strony. Obiekty strony nie mogą istnieć bez obiektu książki. Zapoznaj się z poniższym programem.
Rysunek 03: Klasa w klasie
Rysunek 04: Klasa szkolna
Rysunek 05: Główny program do opisu kompozycji
Zgodnie z powyższym programem Klasa ma dwie właściwości, którymi są name i numOfStudents. Szkoła to kolekcja obiektów Classroom. W głównej metodzie tworzone są dwa obiekty Classroom. Są one dodawane do „klas”. Te „klasy” przekazywane są do obiektu szkolnego. Wreszcie nazwa klasy i liczba uczniów są drukowane przez iterację w kolekcji. Jeśli obiekt szkolny zostanie zniszczony, obiekty z klasy również zostaną zniszczone. To jest przykład kompozycji. Zawiera również relację „ma-a”, a także implikuje własność.
Jaki jest związek między agregacją a kompozycją w Javie?
Agregacja i kompozycja to dwa typy skojarzeń, a kompozycja to wyspecjalizowany typ agregacji. Kompozycja jest podzbiorem agregacji
Jaka jest różnica między agregacją a kompozycją w Javie?
Agregacja a kompozycja w Javie |
|
Agregacja to skojarzenie między dwoma obiektami, które opisuje relację „ma”. | Kompozycja to bardziej specyficzny typ agregacji, który implikuje własność. |
Użycie | |
Agregacja jest używana, gdy jeden obiekt używa innego obiektu. | Kompozycja jest używana, gdy jeden obiekt jest właścicielem innego obiektu. |
Wpływ na obiekty | |
W agregacji, zniszczenie obiektu będącego właścicielem nie wpłynie na obiekt zawierający. | W kompozycji, zniszczenie obiektu będącego właścicielem wpłynie na obiekt zawierający. |
Podsumowanie – agregacja a kompozycja w Javie
Agregacja i kompozycja to dwie koncepcje w programowaniu obiektowym. Relacja „ma-a” opisuje, że jeden obiekt może używać innego obiektu. Agregacja to związek między dwoma obiektami, który opisuje relację „ma-a”. Kompozycja to bardziej specyficzny rodzaj agregacji, który implikuje własność. Różnica między agregacją a kompozycją w Javie polega na tym, że jeśli zawarty obiekt może istnieć bez istnienia obiektu będącego właścicielem, jest agregacją, a jeśli zawarty obiekt nie może istnieć bez istnienia obiektu będącego właścicielem, jest to kompozycja.