observer
DESCRIPTION
Observer. Rusu Andrei Realizat de Toderas Dragos Alexescu Diana. Definitie. - PowerPoint PPT PresentationTRANSCRIPT
OBSERVER
Rusu Andrei
Realizat de Toderas Dragos
Alexescu Diana
DEFINITIE
Reprezinta o relatie de dependenta intre un obiect numit subiect si o multime de obiecte, numita lista de dependenti. Atunci cand subiectul isi modifica starea lista de dependenti este actualizata in mod automat.
CE PROBLEME REZOLVA Cu ajutorul incapsularii putem reutiliza
doua obiecte dintr-o abstractie care depind unul de celalalt in mod independent.
Se utilizeaza observer atunci cand un obiect trebuie sa schimbe sau sa sa notifice alte obiecte dar nu stie cate sau care sunt acestea.
Nu se doreste ca doua sau mai multe obiecte sa se afle in relatie de asociere.
PARTICIPANTISubject cunoaste observatorii (numar arbitrar) Observer defineste o interfata de actualizare a obiectelor ce trebuie notificate de schimbarea subiectelor ConcreteSubject memoreaza starea de interes pentru observatori trimite notificari observatorilor privind o schimbare ConcreteObserver mentine o referinta la un obiect ConcreteSubject memoreaza starea care ar trebui sa fie consistenta cu subiectii
DIAGRAMA DE CLASE
EXEMPLU COD #1Class Subject : class Restaurant
{
Void adaugaObserver(Observer);
Void stergeObserver(Observer);
Void notificaObserver();
};
Class Observer : class Restaurant
{
Void autoUpdate();
}
EXEMPLU COD #2Class Restaurant
{
Restaurant();
Void Meniu();
adaugaObserver(Observer);
stergeObserver(Observer);
notificaObserver(Observer);
};
Class chelner : Class Observer
{
Void servesteMeniu();
Void strangeMeniu();
Void autoUpdate();
}
Subiect
Subiect
Observeri
Non-Observer
Subiect
Pent
ru a
dev
eni
obse
rver
, clie
ntul
trebu
ie sa
sem
nale
ze
buca
taru
lui c
a vr
ea sa
apel
eze
la ser
viciile
chel
neru
lui
Subiect
Pentru
a renunta la
servici
ile ch
elnerului
clientul tr
ebuie sa
notifice
bucatarul.
APLICABILITATE IN AGENDA Spre exemplu putem creea o rubrica
noua la un singur contact din agenda urmand ca apoi aceasta rubrica sa fie disponibila tuturor contactelor.
Un alt exemplu al folosirii observerului este atunci cand se adauga un contact nou in agenda si aceasta se actualizeaza plasand contactul la grupul indicat.
SFARSIT