Pravidlo 9: Operace a návratový typ

Každá operace může mít posloupnost libovolného počtu parametrů. Tyto parametry jsou čtverého druhu: vstupní, výstupní, vstupně-výstupní a návratový.

  • Vstupním parametrem předáváme hodnoty do operace. Případná změna takové hodnoty není navenek vidět.
  • Výstupní parametr slouží k tomu, aby operace hodnotu získala a předala ji volajícímu.
  • Vstupně-výstupní parametr vezme na vstupu hodnotu, předá ji operaci, ta ji může změnit a tato změna je vidět navenek (samozřejmě po dokončení takové operace).

Dosud je vše jednoduché. Ale k čemu je zde návratový parametr? Návratový parametr určuje typ výsledku operace. Jinými slovy určuje typ návratové hodnoty předávané přímo operací.

Pokud bychom chtěli sečíst dvě čísla, máme tedy dvě možnosti, jak operace deklarovat:

První operace vrací výsledek ve výstupním parametru Součet, druhá operace vrací výsledek v návratové hodnotě.

A nyní konečně k pravidlu, o kterém tento článek má být. UML definuje pravidlo at_most_one_return, které operaci zakazuje mít více než jeden návratový parametr. Pokud jste kdy programovali, tak vám to jistě bude dávat smysl (a proto se podívejte na konec článku, kde je podnět k zamyšlení).

Co na to Sparx EA?

Sparx toto pravidlo dovolí porušit. Musíte se ale už trošku snažit (ale opravdu jen trošku).

Při editaci operace umožňuje EA vybrat max. jeden výstupní parametr.

Pokud však editujete jednotlivé parametry, u libovolného z nich můžete nastavit směr (Direction) na return.

Sparx EA má v případě operací i další neduhy. Jednak nedodržuje notaci danou UML (pro výstupní parametr používá hvězdičku namísto klíčového slova out) a jednak neprovedete-li jistá nastavení, tak výchozím typem pro výstupní parametr je void (což je z jazyků rodiny C používáno pro žádný návratový typ).

A jestliže jste dočetli až sem, mám pro vás něco k zamyšlení. Jazyk C# od verze 7 podporuje tzv. n-tice (anglicky tuples):

(string Alpha, string Beta) namedLetters = („a“, „b“);

Console.WriteLine($“{namedLetters.Alpha}, {namedLetters.Beta}“);

Jak byste to namodelovali správně v UML?

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.


*