J'ai une classe avec un modèle de méthode:Mettre en œuvre un « modèle d'observation statique »
struct Subject
{
template <typename T>
void doSomething()
{
..
}
};
Maintenant, chaque fois que doSomething
est appelé (avec un T
) Je voudrais avoir un « observateur » soit informé:
template <typename T>
void onDoSomething()
{
..
}
Il est important que l'observateur est un modèle de méthode (modèle de classe avec méthode reprise fonctionnerait aussi bien). Si ce n'était pas le cas, je pourrais simplement mettre en œuvre le modèle d'observateur commun.
Il serait autorisé à modifier Subject::doSomething()
afin qu'il appelle une méthode. Cependant, la classe Subject
ne devrait pas "connaître" la méthode Observer/Observer concrète.
L'idée sous-jacente est: J'utilise Subject
dans deux projets. J'ai besoin (et j'ai) de l'observateur seulement dans l'un d'entre eux.
Y a-t-il un moyen d'y parvenir?
J'ai oublié de mentionner que je ne peux pas utiliser les fonctionnalités C++ 11. Mais même si je pouvais, je ne vois pas comment cela résout ma question spécifique? – Philipp
@Philipp vous avez raison, ça n'aide pas. J'ai mal compris votre question. – juanchopanza