Jommiey

Lektion3_8

Nov 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Observable
  2. {
  3. public:
  4.   Observable() : obs_list() {}
  5.  
  6.   void add_observer(Observer* o) { obs_list.push_back(o); }
  7.   void remove_observer(Observer* o) { ... }
  8.  
  9. protected:
  10.   void notify_all()
  11.   {
  12.     for (Observer* o : obs_list)
  13.       o->notify();
  14.   }
  15.  
  16. private:
  17.   vector<Observer*> obs_list;
  18. };
  19.  
  20. class Data : public Observable
  21. {
  22.   ...
  23. };
  24.  
  25.  
  26. class Observer
  27. {
  28.   virtual Observer();
  29.   virtual void notify() = 0;
  30.   ...
  31. };
  32.  
  33. class Bar_Chart : public Observer
  34. {
  35.   Bar_Chart(){...}
  36.  
  37.   void notify() override
  38.   {
  39.     ...
  40.   }
  41. };
  42.  
  43. int main()
  44. {
  45.   Data& observable{};
  46.   Bar_chart* bar_chart{new Bar_Chart{}};
  47.   observable.add_observer(bar_chart);
  48.   ...
  49. }
Add Comment
Please, Sign In to add comment