Gewerkt aan opdracht 4

Co-authored-by: Aryan Lala (19097727) <A.E.Lala@student.hhs.nl>
This commit is contained in:
2023-06-08 07:28:57 +02:00
parent 4d26a6eb8b
commit f709a5c3c4
24 changed files with 329 additions and 141 deletions

View File

@@ -0,0 +1,13 @@
#include "Observer.h"
void Subject::notify ( ){
for ( list<Observer*>::iterator i=L.begin( ); i!=L.end( ); ++i ) (*i)->update( );
}
Observer::Observer ( Subject* s ) : S(s){
getSubject( )->insert(this);
}
Observer::~Observer ( ){
getSubject( )->remove ( this );
}

View File

@@ -0,0 +1,26 @@
#ifndef __Observer_H
#define __Observer_H
#include <list>
using namespace std;
class Subject;
class Observer{
private: Subject* S;
protected: Subject* getSubject ( ) const { return S; }
public: Observer (Subject* s);
virtual ~Observer ( );
virtual void update ( ) = 0;
};
class Subject{
private: list<Observer*> L;
protected: virtual void notify ( );
public: Subject ( ) { }
virtual ~Subject ( ) { }
virtual void insert (Observer* s) { L.push_front(s); }
virtual void remove (Observer* s) { L.remove(s); }
};
#endif