Pravidlo 8: Generalizační cykly

Když ve svých návrzích používáte generalizaci, pak tím tvoříte hierarchii. V drtivé většině objektově orientovaných jazycích může jeden prvek přímo specializovat pouze jeden obecnější prvek. V jazycích jako je C++ může jeden prvek specializovat více prvků najednou. A UML vícenásobnou dědičnost opravdu podporuje.

Je tu však pravidlo nazvané no_cycles_in_generalization, které je nutné dodržet. Již z významu generalizace je zřejmé, že nemůže vznikat mezi prvky generalizační smyčka (a to ani přímá, ani nepřímá).

Co na to Sparx EA?

EA sice při vhodném nastavení během vyváření vztahu upozorní na přímou vzájemnou generalizaci (přesto to lze obejít), ale nepřímé smyčky již dovolí. Následující generalizace jsou špatně, ale éáčko mi je dovolilo bez zaváhání vytvořit.

Douška

Celý seriál 30 pravidel UML byl revidován, upraven a knižně vydán. Pokud jej chcete mít k dispozici v papírové podobě, navštivte stránky nakladatelství Elebedial.

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.


*