Agregace je termín, který je používán se odkazovat jeden způsob, jak vztah mezi dvěma objekty. Například Studentská třída může mít odkaz na adresní třídu, ale naopak nedává smysl.
v Javě agregace představuje vztah HAS-a, což znamená, když třída obsahuje odkaz na jinou třídu, o které je známo, že má agregaci.
vztah HAS-a je založen spíše na použití než na dědičnosti. Jinými slovy, třídy A, má-vztah s třídou B, pokud třída obsahuje odkaz na instanci třídy B.
Umožňuje pochopit na příkladu a uvažovat dvě třídy Student a Adresa. Každý student má vlastní adresu, která dělá má-vztah, ale Adresa má student nedává žádný smysl. Jasněji to můžeme pochopit pomocí kódu Java.
zde ve výše uvedeném kódu vidíme, že Studentská třída má vztah s adresovou třídou. Nakreslili jsme také obrázek, abychom demonstrovali vztah mezi těmito dvěma třídami..
Student
třída má proměnná instance typu Address
. Jak jsme proměnné typu Address
Student
třídy, je možné použít Adresu odkaz, který je ad
v tomto případě, k vyvolání metody Address
třídy.
výhoda agregace
hlavní výhodou použití agregace je zachování opětovné použitelnosti kódu. Pokud má entita vztah s jinou entitou, může kód znovu použít pouhým odkazem.
Příklad Agregace
Nyní umožňuje pochopit pomocí příkladu, zde jsme vytvořili dvě třídy Autor a Kniha a Kniha třída má vztahu s Autorem třídě tím, že jeho odkaz. Nyní jsme schopni získat všechny vlastnosti obou tříd.
Knihy Název: Java pro BegginerBook Cena: 800————Autor Podrobnosti———-Auther Jméno: JohnAuther Věk: 42Auther místo: USA
vezměme si ještě jeden příklad pro pochopení agregace. Předpokládejme, že máme ještě jednoho vydavatele třídy, pak Třída knihy může znovu použít podrobnosti o třídě vydavatele pouhým použitím odkazu jako třídy autora. Umožňuje to pochopit pomocí kódu Java.
složení v Javě
složení je omezenější formou agregace. Složení lze popsat tak, že jedna třída, která zahrnuje jinou třídu, je na ní závislá takovým způsobem, že nemůže funkčně existovat bez zahrnuté třídy. Například třída Car
nemůže existovat bez Engine
, tak to nebude funkční.
Proto to slovo Složení, což znamená, že položky, něco, co je vyrobeno z a pokud jsme změnit složení věci, které změnit, podobně jako v Java tříd, jedna třída včetně jiné třídy se nazývá složení třídy zahrnuty poskytuje základní funkční význam vnější třídy.
class Car{ private Engine engine; Car(Engine en) { engine = en; }}
zde zkoumáním kódu můžeme pochopit, že pokud třída automobilu nemá vztah k třídě motoru, pak auto nemá existenci.
kompozice je designová technika, nikoli vlastnost Java, ale můžeme ji dosáhnout pomocí kódu Java.
Q. Kdy použít dědičnost a agregaci?
Když chcete použít nějakou vlastnost nebo chování jakékoli třídy bez nutnosti změnit nebo přidávat další funkce, v takovém případě Agregace je lepší volba, protože v případě Agregace jsme jen pomocí nějaké vnější třídy uvnitř naší třídy jako proměnné.
zatímco pokud chcete použít a upravit nějakou vlastnost nebo chování jakékoli externí třídy nebo možná chcete přidat další funkci, je nejlepší použít dědičnost.
Chcete-li pochopit více o dědičnosti, můžete navštívit náš podrobný návod zde. Kliknutím sem zobrazíte dědičnost v Javě