引用 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 就可以观察多个对象,并且还可以实现两者之间的松耦合 类。