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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

V nasledujúcich astiach opíšeme architektúru SOM, jej vlastnosti vzhadom na vyššie<br />

uvedené ciele, spôsob tvorby objektov a ich zdieanie medzi rôznymi programovacími<br />

jazykmi.<br />

2.5.2 SOM objekty<br />

SOM oddeuje rozhranie objektov od ich implementácie pomocou jazykovo nezávislého<br />

objektového modelu. Knižnica a (klientska) aplikácia používajúca túto knižnicu tak môžu<br />

by implementované v rôznych programovacích jazykoch a pokia zmena nevyžaduje<br />

úpravu zdrojového kódu klientskej aplikácie, nová <strong>verzia</strong> triedy sa môže nasadi bez nutnosti<br />

rekompilácie klientskej aplikácie.<br />

Obrázok 2-12. Hierarchia objektov v SOM.<br />

Existujú tri typy objektov v SOM: inštancie tried (objekty, ktoré nie sú triedami), triedy<br />

(inštancie metatried; objekty, ktoré nie sú metatriedami) a metatriedy (obrázok 2-12).<br />

Každý SOM objekt je odvodený od základného objektu SOMObject, ktorý definuje<br />

správanie spoloné pre všetky SOM objekty; okrem iného definuje metódu somDispatch,<br />

ktorá poskytuje všeobecný spúšací mechanizmus pre volanie metód na objektoch (angl.<br />

method dispatch mechanism).<br />

Trieda je odlišná od obyajného objektu (inštancie triedy) tým, že obsahuje tabuku<br />

metód definujúcu metódy, ktoré môžeme na inštanciách tejto triedy vola. Poas inicializácie<br />

triedy SOM prostredie spustí inicializanú metódu, ktorá informuje triedu o jej rodi-<br />

ovských triedach a umožní jej tým inicializova si vlastnú tabuku metód. Následne pokrauje<br />

inicializácia metódami, ktoré preažia zdedené metódy alebo pridajú do triedy<br />

nové metódy.<br />

V hierarchii je objekt SOMObject trieda, ktorá je inštanciou metatriedy SOMClass<br />

(tiež objektu). Všetky metatriedy v SOM sú eventuálne zdedené z metatriedy SOMClass,<br />

ktorá do zdedených objektov pridáva metódu somNew, ktorá slúži na vytváranie inštancií<br />

triedy a tiež pridáva metódy pre vytváranie a modifikáciu tabuky metód.<br />

Hierarchia objektov v SOM je flexibilná a umožuje tzv. metaprogramovanie, teda<br />

programátorovi poas vykonávania zisova informácie o objektoch a triedach a meni ich<br />

za chodu. Objekty sa poas vykonávania programu vytvárajú (vzorom Továre) zavolaním<br />

továrenskej metódy na objekte triedy príslušného objektu, ktorý chceme vytvori.<br />

Po vytvorení objekt existuje dovtedy, kým nie je explicitne uvonený alebo pokým existuje<br />

proces, ktorý ho vytvoril. Ak chceme, aby SOM objekt žil dlhšie ako proces, ktorý ho vytvoril,<br />

je nutné realizova vlastný perzistenný mechanizmus.

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

Saved successfully!

Ooh no, something went wrong!