在C++中将Observed类引用为Observer的成员变量



我正在C++中实现一个Observer模式。观察者对象在收到通知时需要访问Observed类的成员变量。到目前为止,我已经解决了添加对Observed类的引用作为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的成员发送,这样一来,观察者可以观察多个对象,并且还可以实现两个类之间的松散耦合。

最新更新