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.

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

TextovyEditor<br />

«uses»<br />

«interface»<br />

GrafickyObjekt<br />

Hranica()<br />

VytvorManipulator()<br />

TextView<br />

GetExtent()<br />

Ciara<br />

Hranica()<br />

VytvorManipulator()<br />

Text<br />

Hranica()<br />

VytvorManipulator()<br />

text<br />

return text.GetExtent()<br />

return new ManipulatorTextu()<br />

Obrázok 1-8. Príklad použitia vzoru Adaptér – adaptované z (Gamma, 1995).<br />

Ak by sme mali túto situáciu opísa v symboloch zavedených vyššie, potom A je<br />

TextovyEditor, R je GrafickyObjekt, F je oakávaná funknos týkajúca sa zobrazenia<br />

a editácie objektu. Na druhej strane B je existujúca trieda TextView, R’ je jej rozhranie,<br />

F’ je jej funknos. Poznamenajme, že F a F’ sa zhodujú len iastone: napr.<br />

TextView neposkytuje možnosti posúvania textu po obrazovke. Na tento úel musí by<br />

preto použitá pomocná trieda ManipulatorTextu (na obrázku nie sú jej detaily zobrazené).<br />

V alšej knihe, Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked<br />

Objects (Schmidt, 2000), venovanej softvérovým vzorom v oblasti sieových<br />

a paralelných aplikácií, je definovaný vzor Obaujúca fasáda (angl. Wrapper Facade), ktorý<br />

slúži na „zabalenie funkcií a údajov poskytovaných existujúcimi nie-objektovo orientovanými<br />

aplikanými programátorskými rozhraniami (API) do koncíznejších, robustnejších,<br />

portabilnejších, udržiavatenejších a súdržnejších objektovo orientovaných rozhraní“<br />

(s. 48). Tento vzor je v istom zmysle zúžením myšlienky Adaptéra poda GoF, nakoko sa<br />

špecializuje na sprístupnenie nie-objektovo orientovaných API vhodnou formou. Zodpovedá<br />

nami opísanej situácii . 2, kedy rozhranie R’ existujúcej súiastky B nevyhovuje<br />

z dôvodu nízkej úrovne abstrakcie. Autormi uvádzané príklady použitia sa týkajú rozhraní<br />

na sieovú komunikáciu, prácu s vláknami a s mechanizmami vzájomného vylúenia<br />

v prostrediach so súbežným vykonávaním úloh.<br />

V knihe Patterns of Enterprise Application Architecture (Fowler, 2002) venovanej vzorom<br />

používaným pri vývoji podnikových aplikácií sa opisuje vzor Brána (angl. Gateway) slúžiaci<br />

na sprístupnenie zdroja externého vzhadom na vyvíjanú aplikáciu. Takýmto zdrojom<br />

môže by relaná databáza, partnerská aplikácia, externé údaje (napr. v XML) a podobne.<br />

Externé zdroje sú typicky sprístupované prostredníctvom špecializovaného aplikaného<br />

programátorského rozhrania, asto pomerne komplikovaného. Z dôvodov jednoduchosti<br />

vyvíjanej aplikácie a jej flexibility (vzhadom k možnej výmene externého zdroja, prípadne<br />

zmene jeho rozhrania) Fowler odporúa obali toto API triedou s jednoduchým rozhraním<br />

vhodným pre vyvíjanú aplikáciu. Takto chápaný vzor je zúžením vzoru Adaptér (GoF)<br />

v tom zmysle, že brána sprístupuje len zdroje externé vzhadom k aplikácii, na druhej<br />

strane je jeho rozšírením, nakoko API externého zdroja môže (ale nemusí) by objektovo<br />

orientované.

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

Saved successfully!

Ooh no, something went wrong!