Kulcskülönbség – Összesítés vs kompozíció Java-ban
Az aggregáció két objektum közötti asszociáció, amely leírja a „has-a” kapcsolatot. Az összetétel a tulajdonjogot feltételező összesítés specifikusabb típusa. A legfontosabb különbség az aggregáció és a kompozíció között a Java-ban az, hogy ha a tartalmazott objektum létezhet a tulajdonos objektum létezése nélkül, akkor az aggregáció, és ha a tartalmazott objektum nem létezhet a tulajdonos objektum létezése nélkül, akkor az egy kompozíció..
Az objektum-orientált programozás (OOP) a szoftverfejlesztés egyik fő paradigmája. A szoftver objektumok segítségével történő modellezésére szolgál. Az objektumok osztályok segítségével jönnek létre. Egy osztály tulajdonságokból és metódusokból áll. A szoftverben több objektum is található. Mindegyik objektum együttműködik egymással az üzenettovábbításon keresztül. A két objektum közötti kapcsolatot asszociációnak nevezzük. Mind az aggregáció, mind az összetétel kétféle asszociáció. A „has-a” kapcsolat azt írja le, hogy egy objektum használhat egy másik objektumot. Az aggregáció és az összeállítás OOP-támogató nyelveken valósítható meg. Ha a tartalmazott objektum létezhet a tulajdonos objektum léte nélkül, akkor a két objektum közötti társítás aggregáció. Ha a tartalmazott objektum nem létezhet a tulajdonos objektum létezése nélkül, akkor a két objektum közötti társítás egy kompozíció.
Mi az aggregáció a Java nyelven?
Az aggregáció az asszociáció egy fajtája. Ha egy osztálynak van entitáshivatkozása, azt összesítésnek nevezzük. Az aggregáció a van-a kapcsolatot képviseli. A Student objektumnak lehetnek olyan tulajdonságai, mint a tanulói_azonosító, név, cím. Ennek az objektumnak lehet egy másik cím nevű objektuma is, saját információival, például várossal, állammal, országgal. Ebben a helyzetben a hallgatónak van egy entitás hivatkozási címe. Ez egy „van-a” kapcsolat.
01. ábra: Osztály jelölései
02. ábra: Az aggregáció leírására szolgáló fő program
A fenti program szerint a Marks osztály három tulajdonságból áll, ezek a matematika, az angol és a természettudományos jegyek. A tanulónak van egy Marks tárgya. Megvannak a maga tulajdonságai, amelyek a matematika, az angol és a természettudomány jegyei. A fő metódusban létrejön egy Marks objektum, és hozzárendelődik a jelölések értéke. Az s1 tanuló objektum használhatja az m1 marks objektumot. Ezért a Diák és a Jelek között „van-a” kapcsolat van. A Marks objektum létezhet a Student Object nélkül is. Ezért ez egy összesítés.
Mi a kompozíció a Java nyelvben?
A kompozíció egyfajta asszociáció. Ez az összesítés egy sajátos formája, amely tulajdonjogot jelent. Tételezzük fel, hogy két osztály van, amelyeket A és B osztálynak neveznek. Ha a B osztály objektuma nem létezhet, ha az A osztályba tartozó objektum megsemmisül, akkor ez egy kompozíció. Egy könyv sok oldalból áll. Ha a könyv megsemmisül, az oldalak is megsemmisülnek. Az oldalobjektumok nem létezhetnek a könyv objektum nélkül. Tekintse meg az alábbi programot.
03. ábra: Tantermi osztály
04. ábra: Iskolai osztály
05. ábra: Fő program a kompozíció leírásához
A fenti program szerint a Tanteremnek két tulajdonsága van, ezek a neve és a tanulók száma. Az iskola az osztálytermi tárgyak gyűjteménye. A fő módszerben két osztálytermi objektum jön létre. Ezeket hozzáadják az „tantermekhez”. Ezeket az „osztálytermeket” átadják az iskolai objektumnak. Végül az osztálytermek nevét és a tanulók számát a gyűjtemény iterálásával nyomtatjuk ki. Ha az Iskola objektum megsemmisül, az Osztályterem objektumai is megsemmisülnek. Ez egy példa a kompozícióra. Tartalmazza a „has-a” kapcsolatot is, és tulajdonjogot is magában foglal.
Mi a kapcsolat az aggregáció és a kompozíció között a Java nyelven?
Az aggregáció és az összeállítás az asszociáció két típusa, a kompozíció pedig az összesítés speciális típusa. A kompozíció az összesítés egy részhalmaza
Mi a különbség a Java összesítése és összetétele között?
Aggregáció vs kompozíció Java-ban |
|
Az aggregáció két objektum közötti asszociáció, amely leírja a „van egy” kapcsolatot. | Az összetétel az összesítés egy specifikusabb típusa, amely tulajdonjogot feltételez. |
Használat | |
Aggregációt akkor használunk, ha egy objektum egy másik objektumot használ. | A kompozíció akkor használatos, ha egy objektum birtokol egy másik objektumot. |
Objektumokra gyakorolt hatás | |
Aggregációban a tulajdonos objektum megsemmisítése nincs hatással a tartalmazó objektumra. | A kompozícióban a tulajdonos objektum megsemmisítése hatással lesz a benne lévő objektumra. |
Összefoglaló – Aggregáció vs kompozíció Java nyelven
Az aggregáció és a kompozíció két fogalom az OOP-ban. A „has-a” kapcsolat azt írja le, hogy egy objektum használhat egy másik objektumot. Az aggregáció két objektum közötti asszociáció, amely leírja a „has-a” kapcsolatot. A kompozíció az összesítés egy specifikusabb típusa, amely tulajdonjogot jelent. A Java-ban az aggregáció és a kompozíció közötti különbség az, hogy ha a tartalmazott objektum létezhet a tulajdonos objektum léte nélkül, akkor az aggregáció, és ha a tartalmazott objektum nem létezhet a tulajdonos objektum létezése nélkül, akkor az egy kompozíció.