Aggregation to termin, który odnosi się do jednokierunkowej relacji między dwoma obiektami. Na przykład Klasa ucznia może mieć odniesienie do klasy adresowej, ale odwrotnie nie ma sensu.
w Javie agregacja reprezentuje relację HAS-a, co oznacza, że klasa zawiera odniesienie do innej klasy, o której wiadomo, że posiada agregację.
relacja HAS-a opiera się na użyciu, a nie dziedziczeniu. Innymi słowy, Klasa A ma-relację z klasą B, jeśli Klasa A ma odniesienie do instancji klasy B.
pozwala zrozumieć ją za pomocą przykładu i rozważyć dwie klasy Student i adres. Każdy uczeń ma swój adres, który sprawia, że ma-związek, ale adres ma ucznia nie ma sensu. Możemy to lepiej zrozumieć używając kodu Java.
tutaj w powyższym kodzie widzimy, że Klasa ucznia ma-relację z klasą adresową. Narysowaliśmy też obrazek, aby zademonstrować relację między tymi dwiema klasami..
KlasaStudent
ma zmienną instancji typuAddress
. Ponieważ mamy zmienną typu Address
w klasie Student
, może ona użyć referencji adresowej, która jest ad
w tym przypadku, aby wywołać metody klasy Address
.
zaleta agregacji
główną zaletą agregacji jest zachowanie możliwości ponownego użycia kodu. Jeśli encja ma relację z innym encją, może ponownie użyć kodu, odwołując się do tego.
przykład agregacji
teraz pozwala to zrozumieć za pomocą przykładu, tutaj stworzyliśmy dwie klasy Author I Book, A Klasa Book ma relację z klasą Author poprzez jej odniesienie. Teraz jesteśmy w stanie uzyskać wszystkie właściwości obu klas.
nazwa książki: Java dla początkujących cena książki: 800————szczegóły autora———-Auther Imię: JohnAuther wiek: 42auther miejsce: USA
weźmy jeszcze jeden przykład, aby zrozumieć agregację. Załóżmy, że mamy jeszcze jedną klasę Publisher, wtedy Klasa Book może ponownie użyć szczegółów klasy Publisher, używając jej referencji jako klasy Author. Pozwala zrozumieć go za pomocą kodu Java.
kompozycja w Javie
kompozycja jest bardziej ograniczoną formą agregacji. Skład można opisać tak, gdy jedna klasa, która zawiera inną klasę, jest od niej zależna w taki sposób, że nie może funkcjonalnie istnieć bez klasy, która jest włączona. Na przykład klasa Car
nie może istnieć bez Engine
, ponieważ nie będzie już funkcjonalna.
stąd słowo kompozycja, które oznacza elementy, z których coś jest zrobione i jeśli zmienimy skład rzeczy, które się zmieniają, podobnie w klasach Java, jedna klasa zawierająca inną klasę nazywa się kompozycją, jeśli Klasa dołączona zapewnia podstawowe znaczenie funkcjonalne klasie zewnętrznej.
class Car{ private Engine engine; Car(Engine en) { engine = en; }}
tutaj badając kod, możemy zrozumieć, że jeśli Klasa samochodu nie ma związku z klasą silnika, to samochód nie ma istnienia.
kompozycja jest techniką projektowania, a nie cechą Javy, ale możemy ją osiągnąć za pomocą kodu Javy.
Kiedy stosować dziedziczenie i agregację?
gdy chcemy użyć jakiejś Właściwości lub zachowania dowolnej klasy bez konieczności jej modyfikowania lub dodawania do niej większej funkcjonalności, w takim przypadku lepszym rozwiązaniem jest agregacja, ponieważ w przypadku agregacji używamy tylko DOWOLNEJ zewnętrznej klasy wewnątrz naszej klasy jako zmiennej.
podczas gdy Gdy chcesz użyć i zmodyfikować jakąś właściwość lub zachowanie dowolnej klasy zewnętrznej lub chcesz dodać więcej funkcji, najlepiej użyć dziedziczenia.
aby zrozumieć więcej na temat dziedziczenia, możesz odwiedzić nasz szczegółowy samouczek tutaj. Kliknij tutaj, aby zobaczyć dziedziczenie w Javie