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).