我正在C++中实现观察者模式。 观察者对象在通知时需要访问Observed类的成员变量。引用观察类作为C++中Observer的成员变量
class Observer{
public:
Observer(const Observable& obs) : observed_(obs){}
void notify(const Event& event){
// get Observable member and do stuff
}
private:
const Observable& observed_;
}
class Observable{
public:
void notify(const Event& event){
//observer list.notify
}
}
是参考这种模式的一个很好的方式或者是更好地使用其他策略:现在我如下已经解决了这件事情将观察到的类的引用作为观察员的成员变量?
我个人更喜欢指针而不是引用作为类的成员*。这样,就有可能分配观察员,这在某些情况下可能有用。 – 2015-04-01 18:23:51