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.

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

Ten predstavuje krok po vytvorení inštancie vzoru Decorator, ale ešte bez inštancie<br />

vzoru Composite. Obrázok 5-25 obsahuje výslednú kompozíciu inštancií vzorov.<br />

Obrázok 5-25. PSM s kompozíciou vzorov Decorator a Composite.<br />

5.4.3 Transformácie medzi modelmi<br />

Dôležitou asou, ktorú je potrebné rieši, sú transformácie medzi modelmi. Ich úlohou je<br />

na základe špecifikácie definovanej v rámci vyššieho modelu vytvori korektné inštancie<br />

vzorov a prepoji ich asti s ostatnými prvkami modelu, ím vznikne návrh na OO úrovni.<br />

Úlohou transformácie nemá by len vytvori ''nejakú'' inštanciu vzoru. Každý vzor je<br />

možné navrhnú a implementova viacerými korektnými spôsobmi, úlohou transformácie<br />

je aplikova v danej situácii najvhodnejší variant vzoru a v takej podobe pripravi jeho<br />

inštanciu. Ako príklad môžeme definova rôzne varianty inštancií opísaných vzorov<br />

Composite a Decorator.<br />

Composite<br />

Najastejšie opisované varianty vzoru na úrovni návrhu sa líšia v umiestnení metód pre<br />

pridanie alebo odstránenie prvkov hierarchie. Tieto metódy môžu by umiestnené bu<br />

v rámci najvyššej triedy celej hierarchie (hrá roly Component) alebo len v rámci triedy<br />

slúžiacej na zoskupenie ostatných tried (hrá roly Composite) [14]. Ak sa metódy umiestnia<br />

do najvyššej triedy hierarchie, zjednotí sa síce celé jej rozhranie, ale na druhú stranu sa<br />

tieto metódy stanú bezvýznamné pre triedy, ktoré neobsahujú alšie podtriedy (listy).<br />

Uri, ktorý zo spôsobov je vhodnejší, nie je jednoduché, pretože závisí od toho, akým<br />

spôsobom si vývojár želá pracova so vzorom. Preto rozhodnutie o variante v prípade<br />

samostatnej inštancie vzoru Composite by malo by definované používateom, napríklad<br />

v konfigurácii transformácie.<br />

Decorator<br />

V prípade vzoru Decorator možno identifikova alternatívy vo forme použitia i nepoužitia<br />

rozhrania zastrešujúceho konkrétne dekorátory. V tomto prípade sa môže javi voba<br />

alternatívy jednoduchšie: ak je definovaných viac dekorátorov, použi toto rozhranie,<br />

v prípade jedného dekorátora rozhranie stráca význam, a preto ho môžeme vynecha.

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

Saved successfully!

Ooh no, something went wrong!