Papers/programming

observer pattern & static member

tomato13 2007. 9. 22. 13:25

1. observer pattern

http://en.wikipedia.org/wiki/Observer_pattern

 

2. static member

http://blog.naver.com/izumi4ever?Redirect=Log&logNo=130020467962

 

// test3.h

#ifndef _TEST3_H_
#define _TEST3_H_

#include <stdio.h>

class Observer
{
public:
    static int m_counter;
 
public:
 Observer()
    {
    }

 ~Observer(){};
 
    void Update()
    {
         m_counter += 1;
    }
 
    int Counter()
    {
            return m_counter;
    }
};

 

int Observer::m_counter = 0;

 

class Subject
{
    Observer m_observer;
 
    int counter;

public:
 
 Subject()
    {
        counter = 0;
    }

 

 ~Subject(){};
 
    void RegisterObserver(Observer observer)
    {
        m_observer = observer;
    }
 
    void UnregisterObserver(Observer observer)
    {
        m_observer = observer;
    }
 
    void NotifyObserver()
    {
         m_observer.Update();
    }

 

    void Operate()
    {
        for(counter = 0; counter < 26; counter++)
        {
            if(counter % 5 == 0)
            {
                NotifyObserver();
            }
        }
    }
};

#endif // _TEST3_H_

 

// test3.cpp

#include "test3.h"

int main()
{
        Subject mySubject;
        Observer myObserver1;

  
        mySubject.RegisterObserver(myObserver1);
 
        mySubject.Operate();

 

        printf("count = %d\n", myObserver1.Counter());

 

        return 1;
}

'Papers > programming' 카테고리의 다른 글

CLASS vs. STRUCT  (0) 2007.09.23
상속관계에서의 생성자정의  (0) 2007.09.23
class definition & reference  (0) 2007.09.22
include header files  (0) 2007.09.13
virtual function  (0) 2007.08.06