Klíčový rozdíl - agregace vs složení
Objektově orientované programování (OOP) je běžným paradigmatem ve vývoji softwaru. Objekt je instancí třídy. Není možné vytvářet objekty najednou. K vytvoření objektu by měl být 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ě. Bez řádného plánu není možné postavit dům. Podobně se k vytvoření objektu používá třída. Objekt spolupracuje s jinými objekty. Odkaz s představuje vztah dvou nebo více objektů se nazývá „asociace“. Agregace a složení jsou typy sdružení. Popisují vztah mezi třídami. Tento článek pojednává o rozdílech mezi agregací a složením. Klíčovým rozdílem mezi agregací a složením je, že agregace je asociace mezi dvěma objekty, která popisuje vztah „má“a složení je konkrétnějším typem agregace, který implikuje vlastnictví.
OBSAH
1. Přehled a klíčový rozdíl
2. Co je agregace
3. Co je složení
4. Podobnosti mezi agregací a složením
5. Porovnání vedle sebe - agregace vs. složení ve formě tabulky
6. Shrnutí
Co je agregace?
Vztah mezi dvěma objekty je zobrazen nakreslením čáry v Unified Modeling Language (UML). Odkaz je sdružení. UML pomáhá získat vizuální reprezentaci systému. Je to jiné než běžné programovací jazyky. Asociace také definuje multiplicitu objektů. Jsou to jedna ku jedné, jedna k mnoha a mnoho k mnoha. Když je jeden objekt třídy A přidružen k jedinému objektu třídy B, jedná se o vztah jedna k jedné. Příkladem je autor, který píše knihu. V tomto příkladu jeden autor píše knihu.
Když je jeden objekt třídy A přidružen k mnoha objektům třídy B, jedná se o vztah jedna k mnoha. Příkladem je, že oddělení může mít mnoho zaměstnanců. Když je objekt třídy A přidružen k mnoha objektům třídy B a objekt třídy B je přidružen k mnoha objektům třídy A, jedná se o přidružení mnoho k 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 typů, která dále popisuje vztah mezi objekty. Agregace popisuje vztah „má“. Některé příklady popisující vztah jsou: student „má“studentské ID, vozidlo „má“motor. Je také možné rozšířit velké množství se vztahem. Některé příklady jsou: 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 učebnu tvoří student nebo mnoho 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, nebude to mít vliv na objekty studentů. Tyto objekty budou stále existovat.
Co je to složení?
Složení je konkrétně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á z objektu 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 má stránku nebo mnoho stránek, jedná se o agregaci, ale je blíže specifikována. Pokud je objekt knihy zničen, budou zničeny také objekty stránky. Objekty stránky nemohou existovat bez objektu knihy. Složení je tedy konkrétnější formou agregace, která implikuje vlastnictví.
Jaké jsou podobnosti mezi agregací a složením?
- Oba se používají v objektově orientovaném programování.
- Oba se používají v UML (Unified Modeling Language) k vizuálnímu porozumění systému.
Jaký je rozdíl mezi agregací a složením?
Rozdílný článek uprostřed před tabulkou
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ý implikuje vlastnictví. |
Symbol UML | |
Agregace je označena diamantem. | Složení je označeno zvýrazněným diamantem. |
Funkčnost | |
V agregaci, pokud je vlastnický objekt zničen, nebude to mít vliv na obsahující objekt. | Pokud bude ve složení zničen vlastnický objekt, bude to mít vliv na obsahující objekt. |
Shrnutí - agregace vs složení
Objektově orientované programování je hlavním paradigmatem 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 je znám jako asociace. Agregace a složení jsou typy sdružení. Rozdíl mezi agregací a složením spočívá v tom, že agregace je asociace mezi dvěma objekty, která popisuje vztah „má“a kompozice je konkrétnějším typem agregace, který implikuje vlastnictví. Agregace a složení pomáhají porozumět chování systému.
Stáhněte si verzi Aggregation vs Composition ve formátu PDF
Můžete si stáhnout verzi tohoto článku ve formátu PDF a použít jej pro offline účely podle citace. Stáhněte si zde verzi PDF. Rozdíl mezi agregací a složením