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.

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

za následok vyššie pamäové nároky v prípade používania vzoru abstraktnej továrne.<br />

Riešenie tohto problému dáva návrhový vzor Prototyp.<br />

Vzor Prototyp ako alternatíva k Abstraktnej továrni<br />

Abstraktná továre je vemi podobná vzoru Prototyp. Prototyp je vzor, kde sa nové objekty<br />

vytvárajú kopírovaním prototypového objektu. Môžeme poveda, že prototyp sa dá<br />

použi všade, kde možno použi abstraktnú továre. Vzor Prototyp poskytuje väšiu flexibilitu<br />

za cenu nižšieho výkonu. Prototyp má však nižšie pamäové nároky, vytvára totiž<br />

menej abstraktných tried ako abstraktná továre.<br />

1.3 Obaova<br />

Pri vývoji softvérových systémov sa asto stretávame s požiadavkou na vzájomnú spoluprácu<br />

súiastok, ktoré boli vyvinuté nezávisle od seba. Napriek tomu, že z pohadu požadovanej<br />

a poskytovanej funknosti by takéto súiastky mohli spolupracova, nekompatibilita<br />

rozhraní vo väšine prípadov ich spolupráci zabrauje.<br />

Vzhadom na to, že zmena jednej alebo oboch súiastok, ktorá by kompatibilitu rozhraní<br />

zaistila, nie je niekedy možná alebo vhodná, ako riešenie sa asto používa softvérový<br />

vzor Obaova (angl. Wrapper).<br />

1.3.1 Definícia<br />

Gamma a kol. (Gamma, 1995) nazvali tento vzor adaptérom 1 (angl. Adapter), priom ho<br />

definujú takto: „Adaptér konvertuje rozhranie triedy na iné, oakávané klientmi. Takto<br />

umožuje spolupracova aj triedam, ktoré by pre nekompatibilné rozhrania inak spolupracova<br />

nemohli.“ (s. 139)<br />

Pokúsme sa teraz o mierne zovšeobecnenie tejto definície, najmä s ohadom na to, že<br />

spolupracujúce súiastky nemusia by nutne triedami. Majme teda softvérovú entitu A.<br />

Môže ís o súiastku v užšom zmysle slova, ako ju definuje napr. (Szyperski, 2002) – teda<br />

typicky o procedúru, triedu, balík (angl. package), knižnicu alebo aplikáciu – alebo o iný<br />

typ softvérovej entity, ako je napríklad objekt, informaný systém, (webová) služba<br />

a podobne. Pre jednoduchos vyjadrovania pripusme teda istú nepresnos a hovorme<br />

zjednodušene o (softvérovej) súiastke A.<br />

Súiastka A potrebuje použi funknos F. Oakáva pritom, že ju má k dispozícii prostredníctvom<br />

rozhrania R (obrázok 1-5).<br />

A<br />

F/R<br />

Obrázok 1-5. Súiastka A oakávajúca funknos F prostredníctvom rozhrania R.<br />

astým javom je, že súiastku poskytujúcu funknos F prostredníctvom rozhrania R nemáme<br />

k dispozícii; máme však súastku B poskytujúcu funknos F’, totožnú s F alebo jej<br />

podobnú, prostredníctvom rozhrania R’ (obrázok 1-6).<br />

1<br />

Poznámky k tejto terminologickej odlišnosti (Obaova vs. Adaptér) sú uvedené v asti 1.3.3 nižšie.

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

Saved successfully!

Ooh no, something went wrong!