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

Tento článek je součástí seriálu 30 pravidel UML. Pokud jste ještě nečetli, podívejte se na výchozí článek. Ostatní články můžete dohledat pomocí štítku 30 pravidel UML.

Chcete vědět více? Objednejte si knihu UML pro analytiky nebo navštivte některé mé školení. Některá z nich jsou online.

Zanechat odpověď

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *