我正在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