Agregacja w Javie

Artículo revisado y aprobado por nuestro equipo editorial, siguiendo los criterios de redacción y edición de YuBrain.


Agregacja to rodzaj powiązania między klasami, który można wykonać w różnych obiektowych językach programowania, takich jak Java. Jest to proces, który umożliwia szybkie i wydajne ponowne wykorzystanie kodu, co znacznie ułatwia pisanie programów i wydajniejsze ich działanie.

Ogólnie rzecz biorąc, agregacja odnosi się do klasy w innej klasie. Tworzy to tak zwaną relację HAS-A między klasą zawierającą a klasą zawierającą. Relacje te charakteryzują się tym, że są jednokierunkowe, ponieważ implikują, że jedna z klas zawiera drugą; zapobiega to odwrotnemu wystąpieniu.

Np. możemy powiedzieć, że firma, którą z programistycznego punktu widzenia można postrzegać jako klasę obiektów, ma zbiór pracowników; te z kolei mogą być również postrzegane jako obiekty posiadające własne atrybuty. W tym przypadku klasą zawierającą jest firma, a klasą zawierającą są pracownicy. Ta relacja ma sens tylko w tym kierunku, czyli od firmy do pracownika. Relacja w przeciwnym kierunku nie ma sensu, ponieważ byłoby to tak, jakby powiedzieć, że pracownik zawiera w sobie firmę. Fakt, że to nie ma sensu, pokazuje, że jest to relacja jednokierunkowa.

Agregacja na diagramach klas

W Unified Modeling Language (UML), który jest rodzajem uniwersalnego języka wizualnego stworzonego do projektowania złożonych systemów oprogramowania, diagramy klas służą do opisu struktury i charakterystyki systemu. Na tych diagramach każda klasa i jej relacje z innymi są reprezentowane za pomocą figur geometrycznych. W przypadku agregacji zależność ta jest reprezentowana przez wydrążony romb z boku klasy zawierającej, który jest połączony odcinkiem linii prostej z klasą zawierającą. Na przykład:

Agregacja w Javie

Jest to relacja agregacji wskazująca, że ​​klasa Well zawiera klasę Duck.

W jaki sposób agregacja jest implementowana w Javie?

Implementacja agregacji w Javie jest stosunkowo prosta. To tylko kwestia utworzenia dwóch klas, a następnie odniesienia do pierwszej klasy w drugiej.

Oprócz ustanowienia relacji „mieć” lub „musić”, agregacja Java charakteryzuje się słabym związkiem między obiektem kontenera a zawartością. Oznacza to, że zniszczenie jednego nie pociąga za sobą zniszczenia drugiego. Aby zrozumieć ten typ relacji, można posłużyć się przykładem relacji między nauczycielem a jego uczniami. W tym przypadku zniknięcie lub śmierć nauczyciela nie powoduje zniknięcia lub śmierci jego uczniów.

Odwrotnym przypadkiem byłaby relacja między człowiekiem a jego sercem. Nie ma wątpliwości, że serce jest zawarte w człowieku, ale ta relacja różni się od agregacji. Dzieje się tak dlatego, że w tym przypadku oba są od siebie zależne. Zniszczenie istoty ludzkiej niszczy również serce, ponieważ do funkcjonowania potrzebuje składników odżywczych i tlenu, które zapewnia organizm. Z drugiej strony zniszczenie serca niszczy również człowieka, ponieważ bez serca nie możemy żyć (poza przypadkami przeszczepów czy innych metod sztucznego podtrzymywania życia).

Przykład agregacji

Poniższy kod ilustruje implementację agregacji jako formy powiązania między dwiema klasami przy użyciu języka Java. Przykład dotyczy programu do śledzenia, którzy pracownicy firmy mają własny samochód, a którzy nie, a także którzy mają rowery, a którzy nie.

Ponieważ szukamy relacji wskazującej, że pracownik „ma” samochód i/lub „ma” rower, jest to relacja agregacji między klasą, do której pracownik będzie należeć (którą będziemy nazywać Pracownik , z oczywistych względów) oraz dwie dodatkowe klasy, jedną dla samochodu i jedną dla roweru.

Pierwszą rzeczą do zrobienia w takich przypadkach jest utworzenie odpowiednich klas. W tym przypadku są trzy klasy: jedna dla samochodu, jedna dla roweru i jedna dla pracownika. Poniższy rysunek przedstawia kod służący do tworzenia tych klas o nazwach samochód, rower i pracownik.

Agregacja w Javie

W powyższym kodzie widać również, że każda klasa ma przypisane pewne atrybuty. W przypadku samochodu ma jako atrybuty model, kolor i tablice rejestracyjne, wszystkie powiązane z samochodem. To samo dzieje się z rowerem, który jest powiązany z numerem rejestracyjnym i modelem.

Kiedy spojrzymy na klasę Pracownik, zauważymy, że ta klasa ma atrybuty monbreemp , który reprezentuje imię i nazwisko pracownika oraz empid , który reprezentuje numer identyfikacyjny pracownika; następnie odwołuje się do klas Samochód i Rower, tworząc powiązanie agregacji między tymi klasami. Na koniec tworzony jest akt pracownika wraz z jego samochodem i rowerem.

Należy zauważyć, że w tym przykładzie odwoływanie się do klas Samochód i Rower w klasie Pracownik umożliwia dostęp do atrybutów roweru i samochodu z poziomu klasy Pracownik.

Wyjściem tego programu byłoby:

________Dane pracownika________

Imię i nazwisko pracownika: Xavier

Numer identyfikacyjny pracownika: 210921

________Szczegóły samochodu pracownika________

Model samochodu: Corolla

Kolor samochodu: zielony

Tablica rejestracyjna samochodu: XFZ-043

________Szczegóły roweru pracownika________

Model roweru: MERIDA

Płyty rowerowe: LAA-11B

Bibliografia

-Reklama-

Israel Parada (Licentiate,Professor ULA)
Israel Parada (Licentiate,Professor ULA)
(Licenciado en Química) - AUTOR. Profesor universitario de Química. Divulgador científico.

Artículos relacionados