Klíčový rozdíl - agregace vs složení v Javě
Agregace je asociace mezi dvěma objekty, která popisuje vztah „má-a“. Složení je konkrétnější typ agregace, který implikuje vlastnictví. Klíčovým rozdílem mezi agregací a složením v Javě je, že pokud obsažený objekt může existovat bez existence vlastňujícího objektu, jedná se o agregaci a pokud obsažený objekt nemůže existovat bez existence vlastňujícího objektu, jedná se o kompozici.
Objektově orientované programování (OOP) je hlavním paradigmatem ve vývoji softwaru. Používá se k modelování softwaru pomocí objektů. Objekty jsou vytvářeny pomocí tříd. Třída se skládá z vlastností a metod. V softwaru je více objektů. Každý objekt vzájemně spolupracuje prostřednictvím předávání zpráv. Vztah mezi dvěma objekty je znám jako asociace. Agregace i složení jsou dva typy asociací. Vztah „has-a“popisuje, že jeden objekt může použít jiný objekt. Agregaci a složení lze implementovat v jazycích podporujících OOP. Pokud obsažený objekt může existovat bez existence vlastňujícího objektu, pak je asociace mezi těmito dvěma objekty agregací. Pokud obsažený objekt nemůže existovat bez existence vlastňujícího objektu,potom je asociace mezi těmito dvěma objekty kompozice.
OBSAH
1. Přehled a klíčový rozdíl
2. Co je agregace v Javě
3. Co je kompozice v Javě
4. Podobnosti mezi agregací a kompozicí v Javě
5. Porovnání vedle sebe - agregace vs složení v Javě v tabulkové formě
6. Shrnutí
Co je agregace v Javě?
Agregace je typ sdružení. Pokud má třída odkaz na entitu, je známá jako agregace. Agregace představuje vztah typu has-a. Objekt Student může mít vlastnosti jako student_id, jméno, adresa. Tento objekt může mít také jiný objekt zvaný adresa s vlastními informacemi, jako je město, stát, země. V této situaci má Student referenční adresu entity. Je to vztah „má“.
Obrázek 01: Marks Class
Obrázek 02: Hlavní program pro popis agregace
Podle výše uvedeného programu se třída Marks skládá ze tří vlastností, kterými jsou matematické, anglické a vědecké známky. Student má předmět známek. Má své vlastní vlastnosti, které jsou známkami matematiky, angličtiny a přírodních věd. V hlavní metodě je vytvořen objekt značek a jsou přiřazeny hodnoty značek. Objekt studenta, který je s1, může použít objekt značek, který je m1. Student a Marks proto mají vztah „has-a“. Objekt Marks může existovat i bez Studentského objektu. Jedná se tedy o agregaci.
Co je to složení v Javě?
Složení je typ sdružení. Jedná se o specifickou formu agregace, která implikuje vlastnictví. Předpokládejme, že existují dvě třídy nazývané třída A a B. Pokud objekt třídy B nemůže existovat, pokud je objekt třídy A zničen, pak jde o kompozici. Kniha se skládá z mnoha stránek. Pokud je kniha zničena, zničí se i stránky. Objekty stránky nemohou existovat bez objektu knihy. Viz níže uvedený program.
Obrázek 03: Třída třídy
Obrázek 04: Školní třída
Obrázek 05: Hlavní program pro popis složení
Podle výše uvedeného programu má Učebna dvě vlastnosti, které jsou name a numOfStudents. Škola je sbírka předmětů Učebny. V hlavní metodě jsou vytvořeny dva objekty Učebny. Ty jsou přidány do „učeben“. Tyto „učebny“jsou předávány školnímu objektu. Nakonec se iterací v kolekci vytiskne název třídy a počet studentů. Pokud je školní objekt zničen, zničí se i předměty třídy. Toto je příklad složení. Obsahuje také vztah „má-a“a také implikuje vlastnictví.
Jaký je vztah mezi agregací a složením v Javě?
Agregace a složení jsou dva typy sdružení a složení je specializovaný typ agregace. Složení je podmnožinou agregace
Jaký je rozdíl mezi agregací a složením v Javě?
Rozdílný článek uprostřed před tabulkou
Agregace vs složení v Javě |
|
Agregace je asociace mezi dvěma objekty, která popisuje vztah „má“. | Složení je konkrétnější typ agregace, který implikuje vlastnictví. |
Používání | |
Agregace se používá, když jeden objekt používá jiný objekt. | Složení se používá, když jeden objekt vlastní jiný objekt. |
Působení na objekty | |
V agregaci zničení vlastňujícího objektu neovlivní obsahující objekt. | Ve složení bude mít zničení vlastňujícího objektu vliv na obsahující objekt. |
Shrnutí - Agregace vs složení v Javě
Agregace a složení jsou dva koncepty v OOP. Vztah „has-a“popisuje, že jeden objekt může použít jiný objekt. Agregace je asociace mezi dvěma objekty, která popisuje vztah „má-a“. Složení je konkrétnější typ agregace, který implikuje vlastnictví. Rozdíl mezi agregací a složením v Javě spočívá v tom, že pokud obsažený objekt může existovat bez existence vlastňujícího objektu, jedná se o agregaci a pokud obsažený objekt nemůže existovat bez existence vlastňujícího objektu, jedná se o kompozici.