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 :

[conception] Logger singleton global


Sujet :

C++

  1. #1
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 300
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 300
    Billets dans le blog
    2
    Par d�faut [conception] Logger singleton global
    Bonjour,

    je dois faire un logger pour une application qui comporte beaucoup de classes diff�rentes. Et quasiment toutes ces classes ont besoin du logger.

    Pour l'instant, l'en-t�te de mon logger ressemble � �a (c'est un singleton):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class Logger
    {
    public:
    	// destructor
    	~Logger();
     
    	// get instance
    	static Logger* GetInstance();
     
    	// log function
    	void Log(std::string text);
     
    private:
    	// constructor	
    	Logger();
     
    	// unique instance of Logger
    	static Logger* m_instance;
    };
     
    // initialization of the unique instance
    Logger* Logger::m_instance;
    J'aurais avoir votre avis sur 2 points:
    1/ J'aimerais utiliser mon logger en variable globale, de fa�on � ne pas avoir � faire passer une r�f�rence du logger � chacune des classes qui vont l'utiliser. Et j'aurais aim� instancier cette variable globale dans logger.h, de fa�on � ce que j'ai juste besoin d'inclure logger.h lorsque j'ai besoin du logger.
    Mais je ne sais pas trop comment faire.

    2/ J'ai besoin de passer des param�tres au constructeur (niveau de log par defaut, file descriptor du fichier log, ...). Le probl�me, c'est que le constructeur est appel� par GetInstance(), et que je ne peux raisonnablement pas passer des param�tres � GetInstance(). Comment faire donc?

  2. #2
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    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 296
    Par d�faut
    Ne te laisse pas enfermer dans le pattern singleton.

    Prevois une autre function statique qui s'appellrai init(), p.ex.. Fonction que chaque composant ex�cutable devra appeler lors de son d�marrage, depuis le thread principal, bien avant queles autres ne soient lanc�s.

    Sinon, je ne comprends pas ta premi�re question. Un singleton, c'est une variable globale que l'on a d�guis�e sous un nom qui n'�l�ve pas (� tord) les soup�ons.
    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...

Discussions similaires

  1. [PHP 5.3] Cr�er un singleton global � l'application.
    Par BugFactory dans le forum Langage
    R�ponses: 4
    Dernier message: 17/11/2009, 11h55
  2. [conception] soucis sur un singleton
    Par r0d dans le forum C++
    R�ponses: 12
    Dernier message: 11/07/2007, 11h03
  3. [Conception] Classe abstraite ou singleton
    Par speedster dans le forum Langage
    R�ponses: 6
    Dernier message: 24/03/2007, 10h39
  4. [C#] variables globales et bonne impl�mentation singleton
    Par grome dans le forum Windows Forms
    R�ponses: 7
    Dernier message: 05/05/2006, 11h11

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