Agregace vs složení v UML: Klíčové rozdíly

Obsah:

Anonim

Co je to složení?

Složení je zvláštní případ agregace, který vám pomůže určit vztah mezi celou částí mezi třídou složení a třídou podřízenou (částí).

Co je agregace?

Agregace je zvláštní případ přidružení, když objekt „má“ jiný objekt, který můžete mít agregaci mezi nimi. Směr mezi nimi vám pomůže určit, který objekt obsahuje druhý objekt. Agregace je také známá jako vztah „Has-a“. Jedná se o podtyp asociačního vztahu v UML.

KLÍČOVÉ ROZDÍLY

  • Agregace je jeden typ asociace mezi dvěma objekty popisujícími vztah „mít“, zatímco Composition je specifický typ agregace, který implikuje vlastnictví.
  • Agregace je indikována přímkou ​​s prázdnou šipkou na jednom konci. Na druhou stranu je kompozice indikována pomocí přímky s vyplněnou šipkou na kterémkoli z konců.
  • V agregačním vztahu mohou objekty, které jsou navzájem přidruženy, zůstat v rozsahu systému bez sebe. Ale ve vztahu kompozice nemohou objekty, které jsou navzájem spojeny, zůstat v oboru bez sebe.
  • V agregaci nejsou propojené objekty závislé na druhém objektu, zatímco ve složení jsou objekty velmi závislé na sobě navzájem.
  • V agregaci odstranění jednoho prvku neovlivní jiný přidružený prvek. Naopak ve složení má odstranění jednoho prvku vliv na další přidružený prvek.
  • Agregace je označena vyplněným diamantem, zatímco složení je označeno prázdným diamantem.

Klíčové statistiky

Agregace Složení
Majitel Žádný vlastník Jeden majitel
Život Mají svůj život. Životnost majitele.
Dětský objekt Všechny podřízené objekty jsou nezávislé. Podřízené objekty patří jednomu rodiči.

Příklad složení

Složka může obsahovat mnoho souborů, přičemž každý soubor má přesně jednoho rodiče složky. Pokud je složka odstraněna, budou odstraněny také všechny obsažené soubory. Ve složené agregaci může být objekt součástí pouze jednoho složeného najednou.

Příklad agregace

Například vaše auto sestává z kol, motoru, převodovky, řízení a hlavní karoserie atd. Jedná se o sestavu a ostatní součásti tvoří její součásti.

Zde je auto na kolo jedna agregace, auto na motor je další agregace, auto na převodovku další atd.

Tento typ párování vám pomůže definovat multiplicitu součásti v sestavě jako její výsledek. Lze také zobrazit počet objektů.

Auto potřebuje kolo, aby správně fungovalo. To však nemůžeme říci totéž s autem. Stejnou logiku lze použít na kole, na kole nebo na jiném vozidle, ale ne na konkrétní auto.

Zde je objekt kola smysluplný i bez objektu automobilu. Je znám jako agregační vztah.

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

Zde je hlavní rozdíl mezi agregací a složením:

Agregace Složení
Agregace je jeden typ asociace mezi dvěma objekty, který také popisuje vztah „mít“. Složení je specifický typ agregace, který implikuje vlastnictví.
Agregace je indikována přímkou ​​s prázdnou šipkou na jednom konci. Složení je indikováno přímkou ​​s plným hrotem šipky na kterémkoli z konců.
Agregace je součástí asociačního vztahu. Skladba je součástí asociačního vztahu.
Agregace je považována za slabý typ asociace. Složení je považováno za silný typ asociace.
V agregačním vztahu mohou objekty, které jsou navzájem přidruženy, zůstat v rozsahu systému bez sebe. Ve vztahu kompozice nemohou objekty, které jsou navzájem spojeny, zůstat v oboru bez sebe.
V agregaci nejsou propojené objekty závislé na druhém objektu. Ve složení jsou objekty na sobě velmi závislé.
V agregaci odstranění jednoho prvku neovlivní jiný přidružený prvek. Ve složení má odstranění jednoho prvku vliv na další přidružený prvek.
Příklad: Auto potřebuje kolo, ale nevyžaduje vždy stejné kolo. Auto může adekvátně fungovat i s jiným kolem. Příklad: Ve složce je umístěn soubor. Pokud někdo odstraní složku, odstraní se také soubor přidružený k dané složce.
V agregaci je nadřazený vztah s podřízenou entitou. Ve složení vlastní nadřazená entita podřízenou entitu.
Označuje se vyplněným diamantem Je označen prázdným diamantem
Dítě nemá celý život. Dítě může mít celý život.
Představuje to dutý diamant vedle třídy montáže. Představuje ho plný diamant vedle třídy sestavy.
Odstranění sestavy nikdy neovlivní její části. V případě vlastnictví třídy je objekt odstraněn. Ovlivňuje také objekt třídy obsahující.