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.

Návrhové vzory 19<br />

So vzorom Rukovä-Teleso sú tiež spojené isté problémy vo vzahu k evolúcii obaovaných<br />

súiastok. Z priestorových dôvodov sa nimi na tomto mieste nebudeme zaobera,<br />

viac informácií nájde itate na stránkach Portland Pattern Repository 4 .<br />

Záverená terminologická poznámka: Ako vidíme, pojem Obaova nie je celkom jasne<br />

vymedzený. V širšom zmysle ide o synonymum pre všeobecný vzor Rukovä-Teleso.<br />

Podobne autori (Gamma, 1995) uvádzajú pojem Obaova ako synonymum pre dva konkrétne<br />

vzory: Adaptér a Dekoratér. V užšom zmysle ho možno použi v súlade s našou<br />

definíciou v asti 1.3.1 na oznaenie súiastky umožujúcej spoluprácu iným dvom nekompatibilným<br />

súiastkam – teda ako synonymum vzoru Adaptér poda GoF. Ak neuvádzame<br />

inak, máme pod názvom Obaova na mysli práve tento posledný koncept.<br />

1.3.4 Záver<br />

Ako vidíme, Obaova sa vyskytuje v katalógoch vzorov, a teda aj v praktických systémoch,<br />

pomerne asto. Poda nášho názoru nejde o náhodný jav: dôvodom je potreba spolupráce<br />

nezávisle vyvinutých súiastok, ktorá – ako oakávame – bude ím alej, tým výraznejšia.<br />

1.4 Pozorovate<br />

Návrhový vzor Pozorovate je v anglickom jazyku známy ako Observer.<br />

1.4.1 Úel<br />

Pozorovate umožuje entitám sledova zmeny iných entít. Definuje vzah 1:m, kde<br />

pri zmene jednej entity je ostatných m automaticky notifikovaných a aktualizovaných.<br />

V tomto kontexte rozlišujeme dva typy entít:<br />

− predmet pozorovania alebo tiež subjekt (angl. observable, subject),<br />

− pozorovate (angl. observer).<br />

Predmet pozorovania je entita, zmeny ktorej pozorovate sleduje. Predmet pozorovania<br />

pozná všetkých svojich pozorovateov. Poskytuje rozhranie umožujúce notifikova pozorovateov<br />

v prípade výskytu udalosti. Notifikácia je realizovaná automaticky ako odpove<br />

na zmenu stavu entity. Úlohou pozorovatea je realizácia logiky zmien súvisiacich<br />

so zmenou pozorovanej entity.<br />

Typickým prípadom použitia vzoru sú udalostné systémy, napr. interakcia<br />

v grafickom používateskom rozhraní (GUI). Uvažujme jednoduchú kalkulaku. Zadávanie<br />

údajov pomocou tlaidiel vedie k zmenám obsahu jej displeja. Na zmenu stavu entity<br />

Tlaidlo zareaguje pozorovate Displej aktualizáciou výstupu. Štruktúra vzoru je<br />

znázornená na obrázku 1-10.<br />

1.4.2 Súasti<br />

Vzor Pozorovate má nasledujúce súasti:<br />

− Pozorovate – deklaruje rozhranie, pomocou ktorého bude implementovaná logika<br />

reakcie na zmenu stavu predmetu pozorovania,<br />

4<br />

http://www.c2.com/cgi/wiki?HandleBodyPatternProblem

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

Saved successfully!

Ooh no, something went wrong!