c ++观察者模式:让主体同时成为一个观察者是一种明智的设计吗?

时间:2017-03-08 07:49:46

标签: c++ design-patterns observer-pattern

在观察者模式中,主体注意到观察者的变化。但我还需要接受观察员的通知。

我为此目的做了类似的事情:

//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);
}

代码似乎很复杂,我不确定我是否朝着正确的方向前进。有替代方案还是这样可以吗?

0 个答案:

没有答案