Doporučená, 2024

Redakce Choice

Rozdíl mezi agregací a složením

Agregace a složení jsou typy asociace. Primární rozdíl mezi agregací a složením je, že agregace implicitní vztah, kde dítě může existovat nezávisle na rodiči. Naproti tomu složení naznačuje vztah, kde dítě nemůže existovat nezávisle na rodiči.

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íAgregaceSlož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 asociaceSlabá asociaceSilná asociace
Symbol designu UMLReprezentován dutým diamantem vedle třídy montáže.Reprezentován pevným diamantem vedle třídy montáže.
FunkceOdstraně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).

Agregace se také používá k určení množství objektů, jako jsou one-to-one, one-to-many a many-to-many. Když je objekt třídy X spojen s jedním objektem třídy Y, v tomto případě existuje vztah jeden k jednomu. Podobně, pokud jeden objekt třídy je spojen s více objekty třídy, pak je tento vztah označován jako one-to-many.

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í.

V tomto typu asociace může být základní složka spojena s maximálně jednou sestavou. Navíc, když součást součásti spolupracuje se sestavou, bude mít souběžnou životnost se sestavou.

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

  1. 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.
  2. V agregaci existuje vztah „má“, zatímco ve skladbě existuje „část“ vztahu mezi objekty sestavy a třídou základní.
  3. Agregace je slabá asociace, zatímco kompozice je silná asociace, protože má více omezení.
  4. 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.

Top