/ / Riferimento alla classe Observed come variabile membro dell'Observer in C ++ - c ++, riferimento, modello osservatore

Riferimento alla classe Observed come variabile membro dell'Observer in C ++ - c ++, riferimento, modello osservatore

Sto implementando un pattern Observer in C ++. Gli oggetti observer devono accedere alle variabili membro della classe Observed quando vengono notificati. Ormai ho risolto questa cosa aggiungendo un riferimento alla classe Observed come variabile membro di Observer come segue:

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
}

}

Il riferimento è un buon modo per questo modello o è meglio usare altre strategie?

risposte:

0 per risposta № 1

In questo caso ti consiglio di fare in modo che l'istanza Osservabile venga inviata come membro dell'Evento, in questo modo un Osservatore può guardare più di un oggetto e ottenere anche un accoppiamento lento tra le due classi.