Rozdíl mezi agregací a kompozicí

Obsah:

Rozdíl mezi agregací a kompozicí
Rozdíl mezi agregací a kompozicí

Video: Rozdíl mezi agregací a kompozicí

Video: Rozdíl mezi agregací a kompozicí
Video: Cheatsheet of Relationships between classes in a minute! UML - Aggregation, Composition and more! 2024, Červenec
Anonim

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

Object-Oriented Programming (OOP) je běžné paradigma 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ě. Bez pořádného plánu není možné postavit dům. 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 kompozice jsou typy asociací. Popisují vztah mezi třídami. Tento článek pojednává o rozdílu mezi agregací a složením. Klíčový rozdíl mezi agregací a kompozicí je v tom, že agregace je asociace mezi dvěma objekty, která popisuje vztah „má“a kompozice je specifičtější typ agregace, který implikuje vlastnictví.

Co je agregace?

Vztah mezi dvěma objekty je znázorněn nakreslením čáry v jazyce Unified Modeling Language (UML). Odkaz je asociace. UML pomáhá získat vizuální reprezentaci systému. Je to jiné než běžné programovací jazyky. Asociace také definuje početnost objektů. Jsou to jeden k jednomu, jeden 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 ku jedné. Příkladem je autor píšící knihu. V tomto příkladu jeden autor píše knihu.

Když je jeden objekt třídy A spojen s mnoha objekty 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 asociován s mnoha objekty třídy B a objekt třídy B je asociován s mnoha objekty třídy A, jedná se o asociaci many-to-many. Jedním z příkladů je, že zaměstnanec může pracovat na více projektech a projekt může mít více zaměstnanců.

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

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

Obrázek 01: Agregace

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

Co je složení?

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

Klíčový rozdíl mezi agregací a složením
Klíčový rozdíl mezi agregací a složením

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 třída má více studentů. Symbol diamantu, který je zvýrazněn, představuje kompozici v UML. Vzhledem k tomu, že kniha má stránku nebo mnoho stránek, jedná se o agregaci, která je však blíže specifikována. Pokud je objekt knihy zničen, jsou zničeny i objekty stránky. Objekty stránky nemohou existovat bez objektu book. Proto je složení specifičtější formou agregace, která implikuje vlastnictví.

Jaké jsou podobnosti mezi agregací a kompozicí?

  • Oba se používají v objektově orientovaném programování.
  • Oba se používají v Unified Modeling Language (UML), aby bylo možné vizuálně porozumět systému.

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

Agregace vs složení

Agregace je asociace mezi dvěma objekty, která popisuje vztah „má a“. Složení je nejspecifičtějším typem agregace, která implikuje vlastnictví.
Symbol UML
Agregace je označena kosočtvercem. Složení je označeno zvýrazněným kosočtvercem.
Funkčnost
V agregaci platí, že pokud je vlastnící objekt zničen, nebude to mít vliv na objekt, který jej obsahuje. V kompozici platí, že pokud je vlastnící objekt zničen, bude to mít vliv na objekt, který jej obsahuje.

Shrnutí – agregace vs složení

Objektově orientované programování je hlavní paradigma 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 kompozice jsou typy asociací. Rozdíl mezi agregací a kompozicí je v tom, že agregace je asociace mezi dvěma objekty, která popisuje vztah „má“a kompozice je specifičtější typ agregace, který implikuje vlastnictví. Agregace i kompozice pomáhají porozumět chování systému.

Stáhněte si PDF verzi Agregace vs Composition

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

Doporučuje: