38 lines
552 B
C++
38 lines
552 B
C++
#include <vector>
|
|
#include "interface.h"
|
|
|
|
class Subject
|
|
{
|
|
public:
|
|
Subject(size_t state) : state(state) {}
|
|
size_t getState()
|
|
{
|
|
return this->state;
|
|
}
|
|
void setState(size_t state)
|
|
{
|
|
this->state = state;
|
|
notifyAllObservers();
|
|
}
|
|
void attach(Observer *observer)
|
|
{
|
|
vector.push_back(observer);
|
|
}
|
|
void notifyAllObservers()
|
|
{
|
|
for(auto itor : vector)
|
|
{
|
|
itor->update();
|
|
}
|
|
}
|
|
|
|
private:
|
|
std::vector<Observer*> vector;
|
|
size_t state;
|
|
};
|
|
|
|
|
|
|
|
|
|
|