Observer.h 549 B

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef OBSERVER_H
  2. #define OBSERVER_H
  3. #include <iostream>
  4. #include <string>
  5. #include "Subject.h"
  6. using namespace std;
  7. class Observer {
  8. public:
  9. virtual void Update(Subject* sub) = 0;
  10. virtual void PrintInfo() = 0;
  11. virtual ~Observer();
  12. protected:
  13. Observer();
  14. string _st;
  15. };
  16. class ConcreteObserver :public Observer {
  17. public:
  18. virtual Subject* GetSubject();
  19. ConcreteObserver(Subject* sub);
  20. ~ConcreteObserver();
  21. void Update(Subject* sub);
  22. void PrintInfo();
  23. private:
  24. Subject *_sub;
  25. };
  26. #endif //OBSERVER_H