Návrhový vzor je šablóna, ktorá rieši bežne sa opakujúci problém pri návrhu softvéru.
Vzor pozorovateľa, známy aj ako vzor zverejnenia a predplatenia, je vzorom správania. Umožňuje vám upozorniť viaceré objekty alebo predplatiteľov na akúkoľvek udalosť, ktorá je zverejnená v objekte, ktorý pozorujú.
VYUŽITIE VIDEA DŇA
Tu sa dozviete, ako implementovať návrhový vzor pozorovateľa v TypeScript.
Vzor pozorovateľa
Vzor pozorovateľa funguje tak, že definuje vzťah jeden k mnohým medzi vydavateľom a jeho predplatiteľmi. Keď sa vo vydavateľstve vyskytne udalosť, upozorní na ňu všetkých predplatiteľov. Jedným z rozšírených príkladov tohto vzoru je Prijímače udalostí JavaScript .
Pre kontext predpokladajme, že vytvárate nástroj na sledovanie zásob, ktorý sleduje počet produktov vo vašom obchode. V tomto prípade je váš obchod subjekt/vydavateľ a váš inventár je pozorovateľ/odberateľ. V tejto situácii by bolo optimálne použiť návrhový vzor pozorovateľa.
ako vytvoriť skupinu e -mailov v programe Outlook
Vo vzore návrhu pozorovateľa musí vaša trieda predmetov implementovať tri metódy:
- An priložiť metóda. Táto metóda pridáva k subjektu pozorovateľa.
- A oddeliť metóda. Táto metóda odstraňuje pozorovateľa z objektu.
- A upozorniť/aktualizovať metóda. Táto metóda upozorní pozorovateľov subjektu, keď sa u subjektu zmení stav.
Vaša trieda pozorovateľov musí implementovať jednu metódu, aktualizovať metóda. Táto metóda reaguje, keď dôjde k zmene stavu subjektu.
Implementácia tried subjekt a pozorovateľ
Prvým krokom k implementácii tohto vzoru je vytvorenie rozhraní pre triedu subjektu a pozorovateľa, aby sa zabezpečilo, že implementujú správne metódy:
// Subject/Publisher Interface
interface Subject {
attachObserver(observer: Observer): void;
detachObserver(observer: Observer): void;
notifyObserver(): void;
}
// Observer/Subscriber Interface
interface Observer {
update(subject: Subject): void;
}
Rozhrania v bloku kódu vyššie definujú metódy, ktoré musia implementovať vaše konkrétne triedy.
Trieda konkrétnych predmetov
Ďalším krokom je implementácia konkrétnej triedy predmetov, ktorá implementuje Predmet rozhranie:
// Subject
class Store implements Subject {}
Ďalej inicializujte Predmet stav v Obchod trieda. Pozorovatelia subjektu budú reagovať na zmeny tohto stavu.
ako zistiť, na ktorých webových stránkach je zaregistrovaný môj e -mail
V tomto prípade je stav číslo a pozorovatelia budú reagovať na zvýšenie počtu:
// Subject state
private numberOfProducts: number;
Ďalej inicializujte pole pozorovateľov. Toto pole je spôsob, akým budete sledovať pozorovateľov:
// initializing observers
private observers: Observer[] = [];