IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

Publish/Subscribe : template ou héritage ?


Sujet :

Langage C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Par défaut Publish/Subscribe : template ou héritage ?
    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.

  2. #2
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Bonjour.

    Il me semble que si une utilisation template est une bonne idée je ne pense pas que cela remplace l'utilisation de l'héritage.

    je pense qu'il faut garder des classes évenement,ressources et abonné, probablement abstraite afin de tout pouvoir stocker à la même enseigne. ensuite, les classes filles qui seraient elles réellement stockées, pourraient accepter un certain nombre d'argument templates dont elles hériteraient ou qu'elle stockeraient (cela dépend de ta normalisation des méthodes et de l'utilisation que tu souhaite en faire).

    Si la méthode avec des template est certainement plus souple, elle nécessite par contre une bonne phase de conception afin d'être sûr que tes modèles accepterons et gèrerons correctement les différents arguments templates qu'on pourra leur passer.

    Bonne chance

Discussions similaires

  1. Template et héritage
    Par rooger dans le forum Langage
    Réponses: 5
    Dernier message: 22/07/2008, 13h48
  2. Foncteur, classes templates et héritage
    Par Floréal dans le forum C++
    Réponses: 8
    Dernier message: 17/06/2007, 21h56
  3. Template ou héritage
    Par bolhrak dans le forum Langage
    Réponses: 6
    Dernier message: 22/12/2006, 11h22
  4. [Observateur] pattern publish/subscribe : communication entre objets
    Par mik-at dans le forum Design Patterns
    Réponses: 6
    Dernier message: 04/09/2006, 13h07
  5. patron, templates et héritages!
    Par kleenex dans le forum C++
    Réponses: 4
    Dernier message: 05/06/2006, 22h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo