2012-05-31 5 views
0

Quels sont les avantages et les inconvénients de l'utilisation d'observation contre seulement comme l'inscription callbacks:vs Enregistrement callbacks

worker.setOnJobIsDone(func); 
+0

Copie possible http://stackoverflow.com/questions/8951276/callback-command-vs-eventlistener-observer-pattern – Anand

Répondre

1

Si vous utilisez des pointeurs de fonction, l'objet est complètement ignorant de ses utilisateurs; il appelle simplement une fonction qui permet plus de flexibilité (les utilisateurs n'ont besoin d'hériter de rien, vous pouvez câbler les utilisateurs de cet objet comme vous le souhaitez).

Le modèle d'observateur vous oblige à définir une interface. C'est moins flexible mais plus explicite.

Je préfère fortement le modèle d'observateur par souci de lisibilité; Il est beaucoup plus facile de suivre le flux de travail si vous n'avez jamais vu le code auparavant. En outre, la syntaxe C++ pour passer des fonctions membres est un peu difficile pour les yeux.