Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Deuxième question: est-il possible de rendre cette classe Singleton auto-
destructible quand aucun pointeur ne pointe dessus?
Bonsoir à tous,
tout d'abord bonne année et bonne santé à vous tous!
Vient ensuite quelques questions sur une classe singleton que j'ai créé:
template <class T>
class Singleton
{
public :
static T* getInstance()
{
if (!instance) instance = new T;
return instance;
}
static void Release()
{
if (instance) delete instance;
instance = NULL;
}
protected :
Singleton() {}
~Singleton() {}
private :
static T* instance;
Singleton(Singleton&);
void operator =(Singleton&);
};
template <class T> T* Singleton<T>::instance = NULL;
Là comme ça elle marche très bien:
class Configuration : Singleton<Configuration>
{
private:
friend Singleton<Configuration>;
};
Et je l'instancie comme ça:
Configuration *Options = Configuration::getInstance();
Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Faut-il que je passe par des spécialisations templates? Si oui comment je
peux faire ça?
Deuxième question: est-il possible de rendre cette classe Singleton auto-
destructible quand aucun pointeur ne pointe dessus?
Merci d'avance
@ Bientôt
Mike
Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Deuxième question: est-il possible de rendre cette classe Singleton auto-
destructible quand aucun pointeur ne pointe dessus?
Bonsoir à tous,
tout d'abord bonne année et bonne santé à vous tous!
Vient ensuite quelques questions sur une classe singleton que j'ai créé:
template <class T>
class Singleton
{
public :
static T* getInstance()
{
if (!instance) instance = new T;
return instance;
}
static void Release()
{
if (instance) delete instance;
instance = NULL;
}
protected :
Singleton() {}
~Singleton() {}
private :
static T* instance;
Singleton(Singleton&);
void operator =(Singleton&);
};
template <class T> T* Singleton<T>::instance = NULL;
Là comme ça elle marche très bien:
class Configuration : Singleton<Configuration>
{
private:
friend Singleton<Configuration>;
};
Et je l'instancie comme ça:
Configuration *Options = Configuration::getInstance();
Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Faut-il que je passe par des spécialisations templates? Si oui comment je
peux faire ça?
Deuxième question: est-il possible de rendre cette classe Singleton auto-
destructible quand aucun pointeur ne pointe dessus?
Merci d'avance
@ Bientôt
Mike
Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Deuxième question: est-il possible de rendre cette classe Singleton auto-
destructible quand aucun pointeur ne pointe dessus?
Bonsoir à tous,
tout d'abord bonne année et bonne santé à vous tous!
Vient ensuite quelques questions sur une classe singleton que j'ai créé:
template <class T>
class Singleton
{
public :
static T* getInstance()
{
if (!instance) instance = new T;
return instance;
}
static void Release()
{
if (instance) delete instance;
instance = NULL;
}
protected :
Singleton() {}
~Singleton() {}
private :
static T* instance;
Singleton(Singleton&);
void operator =(Singleton&);
};
template <class T> T* Singleton<T>::instance = NULL;
Là comme ça elle marche très bien:
class Configuration : Singleton<Configuration>
{
private:
friend Singleton<Configuration>;
};
Et je l'instancie comme ça:
Configuration *Options = Configuration::getInstance();
Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Faut-il que je passe par des spécialisations templates? Si oui comment je
peux faire ça?
Deuxième question: est-il possible de rendre cette classe Singleton auto-
destructible quand aucun pointeur ne pointe dessus?
Merci d'avance
@ Bientôt
Mike
Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Oui, il suffit de définir "static T* getInstance(int)". Mais c'est pas
bien.
Parce que par définition du Singleton, il n'y a pas de création. On accède
juste à un objet déjà créé. Pour ma part, je pense qu'une sémantique comme
suit serait plus adaptée:
Configuration *Options = Configuration::getInstance();
Options->SetValue(8);
Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Oui, il suffit de définir "static T* getInstance(int)". Mais c'est pas
bien.
Parce que par définition du Singleton, il n'y a pas de création. On accède
juste à un objet déjà créé. Pour ma part, je pense qu'une sémantique comme
suit serait plus adaptée:
Configuration *Options = Configuration::getInstance();
Options->SetValue(8);
Seulement comment puis-je la modifier si je veux passer un paramètre lors
de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Oui, il suffit de définir "static T* getInstance(int)". Mais c'est pas
bien.
Parce que par définition du Singleton, il n'y a pas de création. On accède
juste à un objet déjà créé. Pour ma part, je pense qu'une sémantique comme
suit serait plus adaptée:
Configuration *Options = Configuration::getInstance();
Options->SetValue(8);
Vient ensuite quelques questions sur une classe singleton que
j'ai créé:
template <class T>
class Singleton
{
public :
static T* getInstance()
{
if (!instance) instance = new T;
return instance;
}
static void Release()
{
if (instance) delete instance;
instance = NULL;
}
protected :
Singleton() {}
~Singleton() {}
private :
static T* instance;
Singleton(Singleton&);
void operator =(Singleton&);
};
template <class T> T* Singleton<T>::instance = NULL;
Là comme ça elle marche très bien:
class Configuration : Singleton<Configuration>
{
private:
friend Singleton<Configuration>;
};
Et je l'instancie comme ça:
Configuration *Options = Configuration::getInstance();
Seulement comment puis-je la modifier si je veux passer un
paramètre lors de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Faut-il que je passe par des spécialisations templates? Si oui
comment je peux faire ça?
Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
Vient ensuite quelques questions sur une classe singleton que
j'ai créé:
template <class T>
class Singleton
{
public :
static T* getInstance()
{
if (!instance) instance = new T;
return instance;
}
static void Release()
{
if (instance) delete instance;
instance = NULL;
}
protected :
Singleton() {}
~Singleton() {}
private :
static T* instance;
Singleton(Singleton&);
void operator =(Singleton&);
};
template <class T> T* Singleton<T>::instance = NULL;
Là comme ça elle marche très bien:
class Configuration : Singleton<Configuration>
{
private:
friend Singleton<Configuration>;
};
Et je l'instancie comme ça:
Configuration *Options = Configuration::getInstance();
Seulement comment puis-je la modifier si je veux passer un
paramètre lors de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Faut-il que je passe par des spécialisations templates? Si oui
comment je peux faire ça?
Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
Vient ensuite quelques questions sur une classe singleton que
j'ai créé:
template <class T>
class Singleton
{
public :
static T* getInstance()
{
if (!instance) instance = new T;
return instance;
}
static void Release()
{
if (instance) delete instance;
instance = NULL;
}
protected :
Singleton() {}
~Singleton() {}
private :
static T* instance;
Singleton(Singleton&);
void operator =(Singleton&);
};
template <class T> T* Singleton<T>::instance = NULL;
Là comme ça elle marche très bien:
class Configuration : Singleton<Configuration>
{
private:
friend Singleton<Configuration>;
};
Et je l'instancie comme ça:
Configuration *Options = Configuration::getInstance();
Seulement comment puis-je la modifier si je veux passer un
paramètre lors de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Faut-il que je passe par des spécialisations templates? Si oui
comment je peux faire ça?
Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
"Pierre Lairez" writes:Seulement comment puis-je la modifier si je veux passer un
paramètre lors de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Oui, il suffit de définir "static T* getInstance(int)". Mais
c'est pas bien. Parce que par définition du Singleton, il
n'y a pas de création. On accède juste à un objet déjà cré é.
Pour ma part, je pense qu'une sémantique comme suit serait
plus adaptée:
Configuration *Options = Configuration::getInstance();
Options->SetValue(8);
Pour ça, il faudrait en savoir plus. Un modèle de conception
n'est pas une recette figée. Peut-être qu'une adaptation
gérant quelques instances au lieu d'une seule serait utile
dans le cadre du PO.
"Pierre Lairez" <pierre.lairez@wanadoo.fr> writes:
Seulement comment puis-je la modifier si je veux passer un
paramètre lors de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Oui, il suffit de définir "static T* getInstance(int)". Mais
c'est pas bien. Parce que par définition du Singleton, il
n'y a pas de création. On accède juste à un objet déjà cré é.
Pour ma part, je pense qu'une sémantique comme suit serait
plus adaptée:
Configuration *Options = Configuration::getInstance();
Options->SetValue(8);
Pour ça, il faudrait en savoir plus. Un modèle de conception
n'est pas une recette figée. Peut-être qu'une adaptation
gérant quelques instances au lieu d'une seule serait utile
dans le cadre du PO.
"Pierre Lairez" writes:Seulement comment puis-je la modifier si je veux passer un
paramètre lors de la création?
Ex: Configuration *Options = Configuration::getInstance(8);
Oui, il suffit de définir "static T* getInstance(int)". Mais
c'est pas bien. Parce que par définition du Singleton, il
n'y a pas de création. On accède juste à un objet déjà cré é.
Pour ma part, je pense qu'une sémantique comme suit serait
plus adaptée:
Configuration *Options = Configuration::getInstance();
Options->SetValue(8);
Pour ça, il faudrait en savoir plus. Un modèle de conception
n'est pas une recette figée. Peut-être qu'une adaptation
gérant quelques instances au lieu d'une seule serait utile
dans le cadre du PO.
class Configuration : public Singleton< Configuration >
en fait, j'imagine.
Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
Évidemment (mais ce ne serait plus ce que j'entends par
Singleton:-)). À la place d'une référence (ou un pointeur
brut), instance renvoie un pointeur intelligent qui gère un
compteur.
class Configuration : public Singleton< Configuration >
en fait, j'imagine.
Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
Évidemment (mais ce ne serait plus ce que j'entends par
Singleton:-)). À la place d'une référence (ou un pointeur
brut), instance renvoie un pointeur intelligent qui gère un
compteur.
class Configuration : public Singleton< Configuration >
en fait, j'imagine.
Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
Évidemment (mais ce ne serait plus ce que j'entends par
Singleton:-)). À la place d'une référence (ou un pointeur
brut), instance renvoie un pointeur intelligent qui gère un
compteur.
class Configuration : public Singleton< Configuration >
en fait, j'imagine.
Oui, oubli de ma part...Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
Évidemment (mais ce ne serait plus ce que j'entends par
Singleton:-)). À la place d'une référence (ou un pointeur
brut), instance renvoie un pointeur intelligent qui gère un
compteur.
Ce que je voudrais faire avec ça, c'est par exemple dans le
cas de la connexion à une BDD, supprimer l'instance quand il
n'y a plus de connexion...
class Configuration : public Singleton< Configuration >
en fait, j'imagine.
Oui, oubli de ma part...
Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
Évidemment (mais ce ne serait plus ce que j'entends par
Singleton:-)). À la place d'une référence (ou un pointeur
brut), instance renvoie un pointeur intelligent qui gère un
compteur.
Ce que je voudrais faire avec ça, c'est par exemple dans le
cas de la connexion à une BDD, supprimer l'instance quand il
n'y a plus de connexion...
class Configuration : public Singleton< Configuration >
en fait, j'imagine.
Oui, oubli de ma part...Deuxième question: est-il possible de rendre cette classe
Singleton auto- destructible quand aucun pointeur ne pointe
dessus?
Évidemment (mais ce ne serait plus ce que j'entends par
Singleton:-)). À la place d'une référence (ou un pointeur
brut), instance renvoie un pointeur intelligent qui gère un
compteur.
Ce que je voudrais faire avec ça, c'est par exemple dans le
cas de la connexion à une BDD, supprimer l'instance quand il
n'y a plus de connexion...