Advertisement
Guest User

Untitled

a guest
May 29th, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<vector>
  4. using namespace std;
  5.  
  6. class Subject{
  7. public:
  8. vector<class Observer*> myObservers;
  9. Subject()
  10. {
  11. myObservers.clear();
  12. }
  13. void addObserver(Observer *obs)
  14. {
  15. myObservers.push_back(obs);
  16.  
  17. }
  18. void notifyObservers();
  19. void doIt(){
  20. this->notifyObservers();
  21. }
  22.  
  23. };
  24. class Observer{
  25. public:
  26. Subject* subiect;
  27. virtual void update() = 0;
  28.  
  29.  
  30. };
  31. void Subject::notifyObservers()
  32. {
  33. vector<Observer*>::iterator it;
  34. for (it = myObservers.begin(); it != myObservers.end(); ++it)
  35. (*it)->update();
  36. }
  37.  
  38. class ObsA : public Observer
  39. {
  40. public:
  41. ObsA(Subject *sub1)
  42. {
  43. this->subiect = sub1;
  44. }
  45. void update()
  46. {
  47. printf("IT'S UPDATED 1\n");
  48. }
  49. };
  50. class ObsB : public Observer
  51. {
  52. public:
  53. ObsB(Subject *sub2)
  54. {
  55. this->subiect = sub2;
  56. }
  57. void update()
  58. {
  59. printf("IT'S UPDATED 2\n");
  60. }
  61. };
  62. void main()
  63.  
  64. {
  65. Subject *sub = new Subject();
  66. ObsA *obs1 = new ObsA(sub);
  67. ObsB *obs2 = new ObsB(sub);
  68. sub->addObserver(obs1);
  69. sub->addObserver(obs2);
  70. sub->doIt();
  71. int n;
  72. cin >> n;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement