Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi agregáciou a zložením

Agregácia a zloženie sú typy asociácie. Hlavným rozdielom medzi agregáciou a zložením je, že agregácia implicitne predstavuje vzťah, v ktorom môže dieťa existovať nezávisle od rodiča. Na druhej strane, kompozícia naznačuje vzťah, v ktorom dieťa nemôže existovať nezávisle od rodiča.

Objektovo orientované programovanie je bežnou paradigmou, ktorá sa používa pri vývoji softvéru. Objekt je inštanciou triedy, ktorá je vytvorená podľa tried. Predmety spolupracujú navzájom prostredníctvom odkazov. Odkazy sú fyzické a koncepčné spojenie medzi objektmi. Zbierka odkazov s podobnou štruktúrou a sémantikou je opísaná ako asociácia .

Porovnávacia tabuľka

Základ pre porovnaniesčítaniezloženie
základnéV agregácii existuje vzťah, v ktorom dieťa môže existovať nezávisle od rodiča.V zložení nemôže existovať nezávisle od rodiča.
Typ vzťahu"má""časť"
Typ združeniaSlabá asociáciaSilné združenie
Symbol dizajnu UMLZastúpený dutým diamantom vedľa montážnej triedy.Zastúpený pevným diamantom vedľa montážnej triedy.
funkcieVymazanie zostavy neovplyvňuje jeho časti.Ak je objekt vlastnej triedy odstránený, môže to významne ovplyvniť obsahujúci objekt triedy.

Definícia agregácie

Agregácia môže byť definovaná ako vzťah s montážnou triedou ku zložkovej triede. Vzťah medzi dvoma objektmi môže byť reprezentovaný vykreslením segmentu riadkov v jazyku UML (Unified Modeling Language).

Agregácia sa tiež používa na špecifikovanie množstva objektov, ako je napríklad one-to-one, one-to-many a many-to-many. Keď je objekt triedy X spojený s jediným objektom triedy Y, v takom prípade existuje vzťah jeden k jednému. Podobne, ak je jeden objekt triedy spojený s viacerými objektmi triedy, potom sa tento vzťah označuje ako jeden k mnohým.

Napríklad auto pozostáva z kolies, motora, prevodovky, riadenia, hlavného telesa atď. Vozidlo je zostava a ostatné časti sú jeho komponenty. Auto na kolesá je jedna agregácia, auto do motorov je ďalšia agregácia a tak ďalej. Každé jednotlivé párovanie je definované tak, aby špecifikovalo početnosť každej zložky v zostave ako výsledok, ktorý môže byť zobrazený aj počtom objektov.

Agregácia je typ združenia, ktoré opisuje vzťah typu "má a" medzi objektmi. Napríklad auto "má" prevodovku a auto má "motor" . Pri vzťahoch medzi jedným alebo viacerými sú príkladom auto "má" veľa kolies .

Definícia zloženia

Zloženie je tiež typom asociácie, ale je to reštriktívnejšia forma. Je reprezentovaný v UML malým pevným diamantom susediacim s montážnou triedou.

V tomto type združenia môže byť základná časť spojená s najviac jednou zostavou. Okrem toho, ak súčasť spolupracuje s montážou, bude mať spolu s montážou súbežnú životnosť.

Zloženie teda znamená vlastníctvo základnej časti celku. To by v konečnom dôsledku zvýšilo pohodlie pri programovaní. Táto kompozícia môže spustiť vymazanie objektu tvorby vymazaním montážneho objektu.

Kompozícia opisuje vzťah "časť" . Napríklad list je súčasťou stromu, ak je strom zničený, potom sú listy musia byť zničené.

Kľúčové rozdiely medzi agregáciou a zložením

  1. Agregácia označuje vzťah, v ktorom môžu mať dieťa a rodičovské entity nezávisle. V protiklade k zloženiu je detský subjekt závislý od rodiča.
  2. V súhrne existuje vzťah "má a", zatiaľ čo v zložení existuje vzťah "časť" medzi zostavou a objektmi triedy tvoriacej zložku.
  3. Agregácia je slabá asociácia, zatiaľ čo kompozícia je silná asociácia, pretože má viac obmedzení.
  4. V dizajne UML je agregácia opísaná dutým diamantom. Na rozdiel od toho je kompozícia zobrazená pevným diamantom.

záver

Súhrnné zložky majú samostatnú existenciu a môžu byť zdieľané alebo opätovne priradené agregátom alebo ich zostaveniu. Na druhej strane v zložení tvorí súčasť presne jedno zhromaždenie alebo agregát. Okrem toho sa táto časť vytvorí, keď sa vytvorí agregát a časť sa zničí pri zničení agregátu.

Top