Technika | Programování

Návrhový vzor visitor

Anonym

11:38 | 27.8.2010
Anonym

Hodnocení

Návrhový vzor visitor umožňuje pro danou skupinu tříd dynamicky definovat nové operace, aniž by bylo nutné tyto třídy jakkoliv modifikovat. Tento článek tento vzor vysvětluje a ukazuje jeho implementaci.

Návrhový vzor visitor
Návrhový vzor visitor

Návrhový vzor visitor umožňuje pro danou skupinu tříd dynamicky definovat nové operace, aniž by bylo nutné tyto třídy jakkoliv modifikovat. Visitor řadíme mezi vzory chování (behavioral) a patří mezi Gang of Four (GoF) vzory (je obsažen v bibli návrhových vzorů Design Patterns: Elements of Reusable Object-Oriented Software).

Vzor visitor obsahuje dva typy tříd – třídy, které jsou navštěvované a třídy navštěvující (visitory). Navštěvované třídy v sobě nesou základní funkcionalitu, navštivující naopak přinášejí dynamicky (tj. za běhu aplikace) všem navštěvovaným třídám dodatečné chování.

Každá navštěvovaná třída musí být na příchod návštěvníka připravena – musí mít metodu (obvykle pojmenovanou accept) – která návštěvníka přijme a předá mu data, která potřebuje ke své práci. Jedná se o ukazatel na současnou instanci (this) a datové proměnné, ke kterým nemá návštěvník přístup (jsou například soukromé). Odkaz na aktuální instanci neslouží pouze k přenosu dat, rozhoduje také o tom, která metoda návštěvníka bude zavolána.

Představme si, že máme třídy obecního úřadu a krajské policejní správy (obě třídy dědí z třídy AbstractAuthority), dále mamá návštěvníka, který přidává oběma úřadům schopnost vydávat výpis z rejstříku trestů. V okamžiku, kdy si občan zažádá o výpis z rejstříku obecní úřad, tak třída úřadu přijme odpovídajícího návštěvníka a předá mu potřebnou infrastrukturu. Metoda návštěvníka pro obecní úřad zjistí, která úřednice má nejméně práce a přidá jí vyřízení žádosti do úkolů na další den. Pokud by občan přišel na krajskou policejní, tak bude volána metoda specifická pro třídu (systém) policejní správy, která využije místní databáze a vrátí navštěvované třídě požadovaný dokument (výpis).

Zdroj: Algoritmy.net

Nepřehlédněte

John: Jančík obviněn bude. Vytáhli jsme kostlivce ze…

John: Jančík obviněn bude. Vytáhli jsme kostlivce ze skříní :: Domácí :: ČT24

7.1. | 02:43 Ct24.cz

Praha – Minulý týden zrušil státní zástupce usnesení o…

Logitech G11 Gaming Keyboard

Logitech G11 Gaming Keyboard

7.1. | 02:43 Alza.cz

Profesionální herní klávesnice, ke které dostanete herní myš…

Shakes a Fidget - Cheat

Shakes a Fidget - Cheat

7.1. | 02:43 Shakes-And-Fidget.cz

Návod jak vydělat neomezené množství zlaťáků a houbiček

Alternativa k PPC kampaním od společnosti mClick je tu!

Alternativa k PPC kampaním od společnosti mClick je tu!

13.11. | 15:04 Webitech.cz

Jedná se o systém s názvem mClick, který spustila Česká…


Komentáře

  • Tento článek ještě nikdo neokomentoval. Buď první!
  • Anonym