Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Observable
- {
- public:
- Observable() : obs_list() {}
- void add_observer(Observer* o) { obs_list.push_back(o); }
- void remove_observer(Observer* o) { ... }
- protected:
- void notify_all()
- {
- for (Observer* o : obs_list)
- o->notify();
- }
- private:
- vector<Observer*> obs_list;
- };
- class Data : public Observable
- {
- ...
- };
- class Observer
- {
- virtual Observer();
- virtual void notify() = 0;
- ...
- };
- class Bar_Chart : public Observer
- {
- Bar_Chart(){...}
- void notify() override
- {
- ...
- }
- };
- int main()
- {
- Data& observable{};
- Bar_chart* bar_chart{new Bar_Chart{}};
- observable.add_observer(bar_chart);
- ...
- }
Advertisement
Add Comment
Please, Sign In to add comment