Observer

Návrhové vzory

SSŠVT


Observer

Obecný koncept

Máme jeden objekt, který může měnit stavy. Dále máme jiné objekty, které potřebují vědět, kdy a jak se stav onoho jednoho objektu změnil, aby mohly příslušným způsobem zareagovat, např. zobrazit nová data, která z tohoto objektu berou.

Mezi tímto jedním objektem a sadou ostatních objektů se vytvoří vztah 1:N jakožto mezi subjektem a jeho pozorovateli. Pozorovatelé se zaregistrují (subscribe) u subjektu na změny, které je zajímají, a v případě, že k takové změně (události) dojde, subjekt pozorovatele upozorní (notifikuje) tím, že zavolá nějakou jejich callback metodu (obsluhu události). Objekty pak mohou příslušným způsobem aktualizovat svá data (třeba zobrazit nový stav subjektu).


        
        

Příklad v .NETu