00001 #pragma once 00002 00003 class Observer; 00004 00011 class Subject 00012 { 00013 00014 private: 00015 00016 CList<Observer*, Observer*> m_ObserverList; 00017 00018 protected: 00019 00023 void Notify(); 00024 00025 public: 00026 00030 virtual ~Subject(); 00031 00036 void AddObserver(Observer* _Obs); 00037 00042 void DeleteObserver(Observer* _Obs); 00043 00044 };