Kiemelt különbség – összesítés vs összetétel
Az objektum-orientált programozás (OOP) gyakori paradigma a szoftverfejlesztésben. Az objektum egy osztály példánya. Nem lehet egyszerre objektumokat létrehozni. Az objektum létrehozásához tervrajznak vagy leírásnak kell lennie. Ezt a tervezetet osztálynak nevezik. Egy osztály tulajdonságokat és metódusokat tartalmaz. Az objektumok osztályok segítségével jönnek létre. Az osztály és az objektum hasonló a való világban lévő tervhez és házhoz. Megfelelő terv nélkül nem lehet házat építeni. Hasonlóképpen, egy osztályt használnak egy objektum létrehozására. Egy objektum együttműködik más objektumokkal. A -val való kapcsolat két vagy több objektum kapcsolatát jelenti, „asszociációnak” nevezzük. Az aggregáció és az összetétel az asszociációk típusai. Leírják az osztályok közötti kapcsolatot. Ez a cikk az aggregáció és az összetétel közötti különbséget tárgyalja. A fő különbség az aggregáció és az összetétel között az, hogy az aggregáció két objektum közötti asszociáció, amely leírja a „van egy” kapcsolatot, az összetétel pedig az összesítés egy specifikusabb típusa, amely tulajdonjogot feltételez.
Mi az aggregáció?
A két objektum közötti kapcsolatot az Egységes Modellezési Nyelvben (UML) rajzolt vonal mutatja. A link egy egyesület. Az UML segít a rendszer vizuális megjelenítésében. Ez eltér a hagyományos programozási nyelvektől. Az asszociáció az objektumok sokaságát is meghatározza. Egy az egyhez, egy a sokhoz és a sok a sokhoz. Ha az A osztály egyetlen objektuma van társítva a B osztály egyetlen objektumához, ez egy-egy kapcsolat. Példa erre egy könyvet író szerző. Ebben a példában az egyik szerző könyvet ír.
Amikor egy A osztályú objektum sok B osztályú objektumhoz van társítva, ez egy-a többhez kapcsolat. Például egy osztálynak sok alkalmazottja lehet. Ha az A osztályú objektum sok B osztályú objektumhoz van társítva, és egy B osztályú objektum sok A osztályú objektumhoz van társítva, akkor ez egy sok a sokhoz asszociáció. Az egyik példa az, hogy egy alkalmazott több projekten is dolgozhat, egy projektnek pedig több alkalmazottja lehet.
Az aggregáció egy típustársítás, amely tovább írja le az objektumok közötti kapcsolatot. Az aggregáció azt írja le, hogy „van kapcsolata”. Néhány példa a kapcsolat leírására: egy diáknak „van” diákigazolványa, egy járműnek „van” motorja. A kapcsolattal nagy mennyiség bővítése is lehetséges. Néhány példa: egy banknak „sok” bankszámlája van, egy osztálynak „sok” diákja van. Ez az alábbi példával magyarázható.
01. ábra: Összesítés
A fenti példa szerint az osztályterem egy tanulóból vagy sok tanulóból áll. A többszörösséget az objektumok számának jelzésére is használják. Leírja, hogy egy osztályteremben több diák van. A gyémánt szimbóluma az aggregációt jelenti UML-ben. A tanuló objektumok nem támaszkodnak az osztályobjektumra. Ha az osztályobjektum megsemmisül, az nem lesz hatással a tanulóobjektumokra. Ezek az objektumok továbbra is léteznek.
Mi az a kompozíció?
A kompozíció az összesítés egy specifikusabb formája. Leírja a tulajdonjogot. Ez az alábbi példával magyarázható.
02. ábra: Összetétel
A fentiek szerint a könyv objektum oldalobjektumból vagy oldalakból áll. A többszörösséget az objektumok számának jelzésére is használják. Leírja, hogy egy osztályteremben több diák van. A kiemelt gyémánt szimbólum a kompozíciót UML-ben jelzi. Mivel a könyvnek egy oldala vagy több oldala van, ez egy összesítés, de pontosabb. Ha a könyv objektum megsemmisül, akkor az oldalobjektumok is megsemmisülnek. Az oldalobjektumok nem létezhetnek a könyv objektum nélkül. Ezért az összetétel a tulajdonjogot feltételező összesítés egy specifikusabb formája.
Milyen hasonlóságok vannak az összesítés és az összetétel között?
- Mindkettőt az objektumorientált programozásban használják.
- Mindkettőt az Unified Modeling Language (UML) használja a rendszer vizuális megértéséhez.
Mi a különbség az összesítés és az összetétel között?
Aggregáció vs összetétel |
|
Az aggregáció két objektum közötti asszociáció, amely leírja a „van egy” kapcsolatot. | A kompozíció a tulajdonjogot feltételező összesítés legspecifikusabb típusa. |
UML szimbólum | |
Az aggregációt gyémánt jelöli. | Az összetételt egy kiemelt gyémánt jelöli. |
Funkcionalitás | |
Aggregálva, ha a tulajdonos objektum megsemmisült, az nem lesz hatással a tartalmazó objektumra. | A kompozícióban, ha a tulajdonos objektum megsemmisül, az hatással lesz a benne lévő objektumra. |
Összefoglaló – Összegzés vs összetétel
Az objektum-orientált programozás a szoftverfejlesztés egyik fő paradigmája. Az OOP-ban a rendszert objektumok segítségével modellezik. Ezek az objektumok nem léteznek elszigetelten. Az objektumok együttműködnek más objektumokkal. Az objektumok közötti kapcsolatot asszociációnak nevezzük. Az aggregáció és az összetétel az asszociáció típusai. Az aggregáció és az összetétel közötti különbség az, hogy az aggregáció két objektum asszociációja, amely leírja a „van egy” kapcsolatot, és az összetétel az aggregáció specifikusabb típusa, amely tulajdonjogot feltételez. Az aggregáció és az összetétel egyaránt segít megérteni a rendszer viselkedését.
Töltse le az összesítés és összetétel PDF-verzióját
Letöltheti ennek a cikknek a PDF-verzióját, és offline célokra használhatja az idézet jegyzetének megfelelően. Kérjük, töltse le a PDF-verziót innen: Különbség az összesítés és az összetétel között