Objektově orientované programování je běžné paradigma, které se používá ve vývoji softwaru. Objekt je instancí třídy, která je vytvořena třídami. Objekty vzájemně spolupracují prostřednictvím odkazů. Odkazy jsou fyzické a koncepční spojení existuje mezi objekty. Sbírka odkazů s podobnou strukturou a sémantikou je popsána jako asociace .
Srovnávací graf
Základ pro srovnání | Agregace | Složení |
---|---|---|
Základní | V agregaci existuje vztah, kde dítě může existovat nezávisle na rodiči. | Ve skladbě nemůže existovat nezávisle na rodiči. |
Typ vztahu | "má" | "část" |
Typ asociace | Slabá asociace | Silná asociace |
Symbol designu UML | Reprezentován dutým diamantem vedle třídy montáže. | Reprezentován pevným diamantem vedle třídy montáže. |
Funkce | Odstranění sestavy neovlivní její části. | Pokud je objekt vlastnící třídy vymazán, může významně ovlivnit objekt obsahující třídu. |
Definice agregace
Agregace může být definována jako vztah s třídou sestavy do třídy komponenty. Vztah mezi dvěma objekty může být reprezentován kreslením úsečky v UML (Unified Modeling Language).
Například auto se skládá z kol, motoru, převodovky, řízení, hlavního tělesa atd. Auto je montážní celek a ostatní díly jsou jeho součástí. Auto na kola je jedna agregace, auto na motory je další agregací, a tak dále. Každý jednotlivý pár je definován tak, aby specifikoval multiplicitu každé jednotlivé součásti v rámci sestavy jako výsledek a počet objektů může být také zobrazen.
Agregace je typ asociace, který popisuje vztah typu "má" mezi objekty. Například auto má převodovku a auto má motor . Pro vztah „ jeden k mnoha“ je příkladem auto „má“ mnoho kol .
Definice složení
Kompozice je také typem asociace, ale restriktivnější formou. To je reprezentováno v UML malým pevným diamantem přilehlým ke třídě shromáždění.
Kompozice tak znamená vlastnictví základní části celku. To by nakonec zvýšilo pohodlí programování. Kompozice může spouštět odstranění základního objektu smazáním objektu sestavy.
Složení popisuje „část“ vztahu. Například, list je část stromu, jestliže strom je zničen, pak listy musí být zničeny.
Klíčové rozdíly mezi agregací a složením
- Agregace označuje vztah, ve kterém dítě a mateřská entita mohou existovat nezávisle. Jako proti, ve složení, podřízený subjekt je závislý na rodiči.
- V agregaci existuje vztah „má“, zatímco ve skladbě existuje „část“ vztahu mezi objekty sestavy a třídou základní.
- Agregace je slabá asociace, zatímco kompozice je silná asociace, protože má více omezení.
- V UML designu je agregace popsána dutým diamantem. Naproti tomu kompozice je zobrazena pevným diamantem.
Závěr
V agregaci mají jednotlivé části nezávislou existenci a mohou být sdíleny nebo převedeny na agregáty nebo jejich sestavení. Na druhé straně, ve složení, součást tvoří přesně jednu sestavu nebo agregát. Díl je dále vytvořen, když je agregát vytvořen, a část je zničena, když je agregát zničen.