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

C++ Discussion :

[POO] Singletons et constructeurs


Sujet :

C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 704
    Points
    2 704
    Par défaut [POO] Singletons et constructeurs
    Hello,

    Ayant besoin d'un singleton, je me suis lancé dans la création d'un singleton générique (= "templatisé") en suivant les directives de la la page suivante :

    http://tfc.duke.free.fr/coding/singleton.html

    Le problème est : que faire si dans les classes dérivant de ce singleton, le constructeur par défaut ne nous convient pas, et qu'on a besoin de lui filer par exemple 2 arguments ?

    Il faudrait théoriquement passer les 2 arguments à la méthode getInstance() du singleton pour que ces deux arguments soient passés au new. Mais cela signifierait qu'il faudrait que toutes els classes dérivées utilisent un cosntructeur à 2 arguments. On perdrait donc la généricité dudit singleton.

    Y a-t-il moyen de lier le prototype du constructeur de la classe dérivée du dingleton, à la méthode getInstance() ?

  2. #2
    Membre averti Avatar de Nogane
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 241
    Points : 323
    Points
    323
    Par défaut
    Bonjour,
    Rajouter des arguments a getInstance() pour créer ton singleton ne serai pas très pratique car tu devrai les passer a chaque appel.

    Pourquoi ne pas créer une méthode init(arg1, arg2) dans ton objet unique?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 704
    Points
    2 704
    Par défaut
    Oui, je crois que je vais faire quelque chose comme ça...

    Mais je suis étonné que personne n'ai pondu un design pattern sur le sujet.

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Cela s'appelle une variable globale ?

    Sérieusement, un singleton auquel tu ne peux pas conférer la construction paresseuse n'a de différences à la variable globale que :
    - le nom bizarre qui contient ::instance() au lieu de g_
    - le fait que pouvoir vérifier avec des assertions que le singleton a bien été construit, et ce dans l'ordre qu'il nous plait.
    - même chose pour le contrôle à la destruction

    Quant à la limitation de compteur sur le type, c'est un gadget intrusif et inutile que ne pratiquent pas les deux meilleurs implémentations de singleton générique que je connaisse (-> ACE et Loki)

    Dans le forum Conception/Modélisation/Design Patterns, j'avais donné le modèle générique[*] de singleton que j'utilisais.
    [*] générique au sens de fichier squelette avancé, et non de classe template.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Singleton et changement de page
    Par RR instinct dans le forum Langage
    Réponses: 6
    Dernier message: 21/11/2006, 06h58
  2. [POO]Probléme de constructeur virtuel surchargé
    Par Laurent Dardenne dans le forum Delphi
    Réponses: 10
    Dernier message: 15/08/2006, 13h19
  3. [POO] Surcharge de constructeur
    Par loganblack dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2006, 13h26
  4. [POO] surcharger le constructeur
    Par wdionysos dans le forum Langage
    Réponses: 9
    Dernier message: 22/03/2006, 16h42
  5. [POO]héritage du constructeur de la classe parente
    Par new_wave dans le forum Langage
    Réponses: 7
    Dernier message: 10/03/2006, 15h25

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