Observer.cpp 585 B

12345678910111213141516171819202122232425262728293031
  1. #include "Observer.h"
  2. #include "Subject.h"
  3. Observer::~Observer() { }
  4. Observer::Observer() { }
  5. Subject* ConcreteObserver::GetSubject() {
  6. return _sub;
  7. }
  8. ConcreteObserver::ConcreteObserver(Subject* sub) {
  9. _sub = sub;
  10. _sub->Attach(this);
  11. }
  12. ConcreteObserver::~ConcreteObserver() {
  13. _sub->Detach(this);
  14. //if (_sub != nullptr) {
  15. // delete _sub;
  16. //}
  17. }
  18. void ConcreteObserver::Update(Subject* sub) {
  19. _st = sub->GetState();
  20. PrintInfo();
  21. }
  22. void ConcreteObserver::PrintInfo() {
  23. cout << "ConcreteObserver::PrintInfo\t" << _sub->GetState() << endl;
  24. }