Salut,
Citation:
Envoyé par alex'l
Citation:
Envoyé par bouye
Le getInstance() pourrait très bien déférer l'allocation du singleton
tu veux dire quoi par là?
Je pense qu'il veut dire par là que tu peux facilement utiliser d'autres implémentations en renvoyant une autre classe...
Par exemple (avec AnotherSingleton qui hérite de Singleton) :
Code:
1 2 3 4 5 6 7 8 9 10
| public static Singleton getInstance() {
if (instance==null) {
if ( /* n'importe quel condition */ ) {
instance = new AnotherSingleton();
} else {
instance = new Singleton();
}
}
return instance;
} |
Ce te permet de facilement changer l'implémentation de ton Singleton sans toucher au code... alors que si tu utilises des méthodes statiques il faudra modifier tout le code pour changer les appels de méthodes...
De plus le singleton est une classe normale, tu peux donc faire un traitement particulier dans le constructeur (comme lire des fichiers de configuration, etc...) et ainsi avoir des relations entre les méthodes... Alors que les méthodes statiques sont indépendantes...
a++