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.

Znovupoužitie návrhových vzorov na úrovni modelu 157<br />

MyComposite<br />

{CompositePattern = true}<br />

myOperation(){sequential,CompositeOperation = true}<br />

ClassWorkingWithCompositePattern<br />

MyLeaf<br />

{CompositeLeaf = true}<br />

ClassWorkingWithLeaf<br />

Obrázok 5-19. PIM so vzorom Composite.<br />

Pomocou UML Profilu (a pre prehadnos taktiež šedým podfarbením) sú odlíšené<br />

prvky vzorov od ostaných OO prvkov. Prvok MyComposite predstavuje inštanciu vzoru<br />

ako celok. Jeho súasou je aj metóda myOperation predstavujúca metódu, ktorú dokáže<br />

vykonáva celá hierarchia a rovnako každý jej len. Trieda MyLeaf predstavuje triedu,<br />

ktorá môže by pomocou vzoru uložená. Model zachytáva okrem prvkov na úrovni vzoru<br />

aj triedy na úrovni bežného OO návrhu, priom tie dokážu navzájom spolupracova: model<br />

obsahuje jednu triedu pracujúcu s celou hierarchiou poskytovanou vzorom a jednu<br />

triedu, ktorá dokáže pracova len s triedou predstavujúcou list v hierarchii vzoru.<br />

Opísaný model môže by transformovaný do modelu klasického OO návrhu, výsledok<br />

transformácie pre predchádzajúci model sa nachádza na obrázku 5-20. Ten obsahuje<br />

korektne vytvorenú inštanciu vzoru Composite spolu s triedami, ktoré so vzorom spolupracujú<br />

tak, ako to definuje model na obrázku 5-19.<br />

Obrázok 5-20. PSM so vzorom Composite.<br />

Pri praktickej realizácii transformácie je vhodné oznai elementy výsledného návrhu hrajúce<br />

role vo vzoroch vybraným mechanizmom z [7], ím by sa zachovali informácie<br />

o aplikácii vzoru aj v návrhu na nižšej úrovni, uahila by sa možnos generovania zdrojového<br />

kódu z modelu a súasne sa by sa zjednodušila možnos spätného vytvorenia modelu<br />

PIM z PSM.

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

Saved successfully!

Ooh no, something went wrong!