在观察者模式中,主体注意到观察者的变化。但我还需要接受观察员的通知。
我为此目的做了类似的事情:
//Observer.h
class Subject;
class Observer{
public:
void update(Subject* p_subject);
void Subject_Notify();
private:
Subject* subject;
}
//Subject.h
#include "Observer.h"
class Subject{
public:
void observer_notify()
{
observer->update(this);
}
void update(Observer* observer);
private:
Observer* observer;
}
//Observer.cpp
#include "Observer.h"
#include "Subject.h"
void Observer::update(Subject* p_subject)
{
//do something with p_subject
}
void Observer::Subject_Notify()
{
subject->update(this);
}
代码似乎很复杂,我不确定我是否朝着正确的方向前进。有替代方案还是这样可以吗?