引用 Observed class 作为 C++ 中 Observer 的成员变量
Reference to Observed class as member variable of the Observer in C++
我正在用 C++ 实现观察者模式。
观察者对象在收到通知时需要访问 Observed class 的成员变量。到目前为止,我已经解决了这个问题,添加对 Observed class 的引用作为 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
}
}
参考是这种模式的好方法还是使用其他策略更好?
在这种情况下,我建议将 Observable 实例作为 Event 的成员发送,这样一个 Observer 就可以观察多个对象,并且还可以实现两者之间的松耦合 类。
我正在用 C++ 实现观察者模式。 观察者对象在收到通知时需要访问 Observed class 的成员变量。到目前为止,我已经解决了这个问题,添加对 Observed class 的引用作为 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
}
}
参考是这种模式的好方法还是使用其他策略更好?
在这种情况下,我建议将 Observable 实例作为 Event 的成员发送,这样一个 Observer 就可以观察多个对象,并且还可以实现两者之间的松耦合 类。