Rozdíl mezi agregací a kompozicí

Klíčový rozdíl - agregace vs. složení
 

Objektově orientované programování (OOP) je běžným vzorcem ve vývoji softwaru. Objekt je instancí třídy. Není možné vytvářet objekty najednou. K vytvoření objektu by měl existovat plán nebo popis. Tento plán je známý jako třída. Třída obsahuje vlastnosti a metody. Objekty jsou vytvářeny pomocí tříd. Třída a objekt jsou podobné plánu a domu v reálném světě. Není možné postavit dům bez řádného plánu. Podobně se třída používá k vytvoření objektu. Objekt spolupracuje s jinými objekty. Spojení s představuje vztah dvou nebo více objektů se nazývá „asociace“. Agregace a složení jsou typy asociací. Popisují vztah mezi třídami. Tento článek popisuje rozdíl mezi agregací a skladbou. klíčový rozdíl mezi agregací a skladbou je to agregace je asociace mezi dvěma objekty, která popisuje vztah „má“ a složení je specifičtější typ agregace, který zahrnuje vlastnictví.

OBSAH

1. Přehled a klíčový rozdíl
2. Co je agregace
3. Co je složení
4. Podobnosti mezi agregací a kompozicí
5. Porovnání bok po boku - agregace vs. složení v tabulkové formě
6. Shrnutí

Co je agregace?

Vztah mezi dvěma objekty je zobrazen nakreslením čáry v jazyce Unified Modeling Language (UML). Odkaz je asociací. UML pomáhá získat vizuální reprezentaci systému. Je to jiné než běžné programovací jazyky. Přidružení také definuje množství objektů. Jsou to jeden na jednoho, jeden na mnoho a mnoho na mnoho. Pokud je jeden objekt třídy A spojen s jedním objektem třídy B, jedná se o vztah jeden ku jednomu. Příkladem je autor, který píše knihu. V tomto příkladu jeden autor píše knihu.

Pokud je jeden objekt třídy A spojen s mnoha objekty třídy B, jedná se o vztah jeden k mnoha. Příkladem je, že oddělení může mít mnoho zaměstnanců. Pokud je objekt třídy A spojen s mnoha objekty třídy B a objekt třídy B je spojen s mnoha objekty třídy A, jedná se o sdružování mezi mnoha. Jedním příkladem je, že zaměstnanec může pracovat na více projektech a projekt může mít více zaměstnanců.

Agregace je asociace typu, která dále popisuje vztah mezi objekty. Agregace popisuje vztah „má“. Některé příklady, které popisují vztah, jsou: „student má“ studentské id, vozidlo „má“ motor. Je také možné rozšířit velké množství vztahů. Některé příklady jsou, že banka „má mnoho“ bankovních účtů, třída „má mnoho“ studentů. To lze vysvětlit pomocí níže uvedeného příkladu.

Obrázek 01: Agregace

Podle výše uvedeného příkladu se učebna skládá ze studenta nebo z mnoha studentů. Násobnost se také používá k označení počtu objektů. Popisuje, že jedna učebna má více studentů. Symbol diamantu představuje agregaci v UML. Studentské objekty se nespoléhají na objekt třídy. Pokud je objekt třídy zničen, neovlivní to studentské objekty. Tyto objekty budou stále existovat.

Co je složení?

Složení je specifičtější formou agregace. Popisuje vlastnictví. To lze vysvětlit pomocí níže uvedeného příkladu.

Obrázek 02: Složení

Podle výše uvedeného se objekt knihy skládá ze stránky nebo stránek. Násobnost se také používá k označení počtu objektů. Popisuje, že jedna učebna má více studentů. Symbol diamantu, který je zvýrazněn, představuje složení v UML. Protože kniha obsahuje stránku nebo mnoho stránek, jedná se o agregaci, ale je upřesněna. Pokud je objekt knihy zničen, zničí se také objekty stránky. Objekty stránky nemohou existovat bez objektu knihy. Proto je složení specifičtější formou agregace, která zahrnuje vlastnictví.

Jaké jsou podobnosti mezi agregací a kompozicí?

  • Oba se používají v objektově orientovaném programování.
  • Oba jsou používány v Unified Modeling Language (UML) k získání vizuálního porozumění systému.

Jaký je rozdíl mezi agregací a skladbou?

Agregace vs. složení

Agregace je asociace mezi dvěma objekty, která popisuje vztah „má“. Složení je nejkonkrétnějším typem agregace, která zahrnuje vlastnictví.
 Symbol UML
Agregace je označena diamantem. Složení je označeno zvýrazněným diamantem.
Funkčnost
Při agregaci, pokud je vlastnický objekt zničen, nebude mít vliv na obsahující objekt. Pokud je vlastnický objekt zničen, bude mít ve složení vliv na obsahující objekt.

souhrn - Agregace vs. složení 

Objektově orientované programování je hlavním vzorem ve vývoji softwaru. V OOP je systém modelován pomocí objektů. Tyto objekty neexistují izolovaně. Objekty spolupracují s jinými objekty. Vztah mezi objekty se nazývá asociace. Agregace a složení jsou typy asociací. Rozdíl mezi agregací a kompozicí spočívá v tom, že agregace je asociace mezi dvěma objekty, která popisuje vztah „má“ a kompozice je specifičtějším typem agregace, který zahrnuje vlastnictví. Agregace a složení pomáhají pochopit chování systému.

Stáhněte si PDF verzi agregace vs. složení

Můžete si stáhnout PDF verzi tohoto článku a použít ji pro účely offline podle citace. Stáhněte si PDF verzi zde Rozdíl mezi agregací a skladbou

Odkaz:

1. Pomocí agregace a složení, Kariéra lidí, 22. května 2015. K dispozici zde