Bien le bonjour !

Je continue mon exploration des concepts jusqu'à présents délaissés du C++. Je souhaite implémenter le patron de conception Publish/Subscribe, et j'hésitais à l'implémenter à l'aide d'un bon vieil héritage, ou à l'aide de templates.

L'idée est bien sûr de rendre cette implémentation réutilisable en dehors de mon projet actuel.

Les classes entrant en jeu seraient :

- une classe « Ressource », jouant le rôle de marqueur afin de savoir qui souhaite recevoir quoi
- une classe « Évenement », représentant le « quoi » de la classe précédente
- une classe « Abonné », s'abonnant à des ressource afin de recevoir les évènements publier sur celles-ci et de les traiter
- une classe « bus d'évènement », auprès duquel les abonnés souscrivent, et sur lequel des « Éditeur » poussent des évènements sur une ou plusieurs « ressource ». Connaissant ses « abonnés », le bus va alors distribuer à ceux-ci les évènements poussés sur les ressources les intéressant (en appelant leur fonction recevoir_Evenement (Evenement) )

La cas de l'héritage me semble relativement simple et je pense pouvoir l'implémenter sans trop de soucis. Cependant, cela me semblait un peu lourd à l'utilisation, puisque pour chaque besoin, il sera alors nécessaire de créer des sous-classes pour chaque Ressource, évènement et abonné.

Il m'a alors semblé que proposer une implémentation à l'aide de template serait beaucoup plus souple puisqu'il suffirait alors de préciser quelle classe jouerai le rôle de la ressource, quelle classe jouerai le rôle de l'abonné et quelle classe jouerai le rôle de l'évènement.
La seule contrainte restante serait que les classes jouant le rôle d'abonné implémentent une fonction recevoir_Evenement(EVENEMENT).

J'aurais souhaité avoir vos avis sur cette réflexion. Maîtrisant peu la bonne utilisation des templates en dehors de la STL, je me demande si mon « choix » d'implémenter ce patter à l'aide de templae en lieu et place d'un bon vieil héritage n'est pas uniquement dû à ma volonté d'expérimenter un peu mieux les templates du côté du créateur.

Merci d'avance pour vos avis éclairés et excellent WE à tous.