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.

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!