Observer Design Pattern - Specific Topics and Observers

The links (GOF design patterns, chapters of First Design Patterns, http://www.dofactory.com/Patterns/PatternObserver.aspx ) that I read about the observer design pattern provide that a particular subject contains a link to a specific observer. Like that:

class ConcreteObserver : IObserver
{
    ConcreteSubject concreteSubjectInstance;
    //other code, etc.
} 

Now, if a particular object itself implements the Subject interface (or is derived from some abstract Subject class), why not make the type in ConcreteObserver such an abstract / interface? I.e.

class ConcreteObserver : IObserver
{
    ISubject concreteSubjectInstance;
    //other code, etc.
} 

Also, why not just make this field in an interface (like IObserver)?

, , , -, , , , ?

enter image description here

? , .

+5
3

"update()" Subject, , Observer ( ), ConcreteSubject, GetState() ( ISubject).

( ConcreteSubject) "update()".

ConcreteSubject ISubject , ConcreteSubject - (, ISubject).

+6

, subject holds a reference to the concrete observer , .

/ , /, .

, IObserver IObservable. , , , , , , .

+2

. , . , , . , .

0

All Articles