Asociace třídy sama na sebe

V praxi se velmi často stává, že některá ze tříd má asociaci sama na sebe, přičemž z podstaty věci neumožňuje cyklus. U zaměstnance evidujeme nadřízeného, produkt může být součástí jiného produktu a ten dalšího, na matrice zaznamenáváme u dětí rodiče apod. Mnohé diagramy pak, bohužel, vypadají následovně:

Proč bohužel? Ještě jednou se na diagram podívejte a zamyslete se nad násobností. Opravdu každý zaměstnanec musí mít svého nadřízeného? Jak by vypadala instance zaměstnance? Třeba takto?

Jenže diagram není úplný, chybí nám tam nadřízený Helimadoe Havlíčkové. Abychom vyhověli předpisu v diagramu tříd, museli bychom vytvářet instance donekonečna. A to není naším záměrem. Z tohoto důvodu je nutné, abychom násobnost 1 resp. 2 nahradili násobností 0..1, resp. 0..2. Poté dostaneme logicky správný výsledek:

Věřím, že se s touto chybou začnu potkávat již jen zřídkakdy.

Uložit

About Slávek Rydval 134 Článků
Slávek Rydval začínal jako programátor, ale postupem času se dostal k návrhu softwaru, posléze k integrační architektuře a v současní době pracuje jednak jako architekt řešení a jednak jako školitel UML (základů i příprav k certifikační zkoušce OCUP 2) a nástroje Sparx Enterprise Architect. S UML přišel do styku již na univerzitě, ale opravdu intenzivně se mu věnuje posledních deset let. Na programování však nezanevřel a občas pár řádek kódu napíše.

Buďte první kdo přidá komentář

Napište komentář

Vaše e-mailová adresa nebude zveřejněna.


*