04.11.2014 Views

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

64 Štúdie vybraných tém programových a informaných systémov<br />

Operácie a metódy<br />

Každý SOM objekt má špecifikované rozhranie, ktoré opisuje signatúru operácií, ktoré<br />

možno nad objektom vykona. Každá operácia sa skladá z názvu operácie, vstupných argumentov<br />

a výstupných hodnôt. Operácie sú vykonávané metódami, ktoré implementujú<br />

správanie objektu.<br />

Klient požiada o službu špecifikovaním mena objektu a názvu operácie spolu<br />

s argumentmi. Objekt môže podporova viaceré operácie. Niektoré programovacie jazyky<br />

podporujú polymorfizmus, teda operácie s rovnakým názvom ale odlišnými argumentmi.<br />

Metóda je procedúra spustená na SOM objekte, ktorej parametre zodpovedajú parametrom<br />

požadovanej operácie.<br />

SOM podporuje tri možné mechanizmy vyhadávania metód, ktoré sa majú vykona<br />

na požiadavku pre vykonanie operácie: rezolvencia ofsetom (angl. offset resolution), rezolvencia<br />

menom (angl. name resolution) a rezolvencia spúšacou funkciou (angl. dispatch function<br />

resolution).<br />

Pri rezolvencii ofsetom klientsky kód spustí metódu cez smerník na špecifickom ofsete<br />

v tabuke vypoítanej v ase kompilácie. Tento spôsob je do istej miery podobný virtuálnej<br />

tabuke v C++. Rezolvencia menom vyhadáva metódu dynamicky poas vykonávania<br />

programu poda požadovaného mena a umožuje tak prístup k objektom, ktorých<br />

trieda nie je známa v ase kompilácie. Rezolvencia spúšacou funkciou umožuje volanému<br />

objektu riadi proces vyhadávania metódy ubovonými pravidlami.<br />

Podpora v iných programovacích jazykoch<br />

Okrem podpory SOM v jazykoch C a C++ pomocou SOM IDL kompilátora pre generovanie<br />

jazykovo špecifických previazaní, existoval ešte alternatívny spôsob použitia SOM pre<br />

C++, Smalltalk a OO-COBOL, tzv. DirectToSOM (Hamilton, 1996). V tomto prípade priamo<br />

kompilátor cieového jazyka generoval a konzumoval IDL a generoval volania<br />

do SOM spúšacieho prostredia, ím bola zabezpeená jednoduchšia (bez nutnosti vytvára<br />

IDL programátorom) natívna podpora SOM priamo v programovacom jazyku (obrázok<br />

2-13).<br />

Obrázok 2-13. Schéma SOM (Hamilton, 1996).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!