/ / Référence à la classe observée en tant que variable membre de l'observateur en C ++ - c ++, référence, observateur-pattern

Référence à la classe observée en tant que variable membre de l'observateur en C ++ - c ++, référence, observateur-pattern

J'implémente un modèle Observer en C ++. Les objets observateurs doivent avoir accès aux variables membres de la classe Observed lorsqu'ils sont notifiés. A présent, j’ai "résolu ce problème en ajoutant une référence à la classe observée en tant que variable membre de l’observateur comme suit:

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
}

}

La référence est-elle un bon moyen pour ce modèle ou est-il préférable d'utiliser d'autres stratégies?

Réponses:

0 pour la réponse № 1

Dans ce cas, je vous recommande d’envoyer l’instance Observable en tant que membre de Event, afin qu’un observateur puisse surveiller plus d’un objet et que vous obteniez également un couplage lâche entre les deux classes.