Classe Static VS classe "singletone"
Résolu/Fermé
anawak
Messages postés
53
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
1 août 2010
-
9 nov. 2005 à 14:36
Monaam - 16 oct. 2011 à 10:53
Monaam - 16 oct. 2011 à 10:53
A voir également:
- Classe Static VS classe "singletone"
- Udp vs tcp - Guide
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Programmation
- X86 vs x64 ✓ - Forum Windows
- Retrouver photo de classe gratuitement - Forum Réseaux sociaux
- Classe ram - Guide
7 réponses
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
9 nov. 2005 à 15:34
9 nov. 2005 à 15:34
Si ça peut éclaircir les choses:
final class interdit la création de classe dérivée
alors que "singleton" interdit la création de plus d'une instance de la classe.
final class interdit la création de classe dérivée
alors que "singleton" interdit la création de plus d'une instance de la classe.
Utilisateur anonyme
10 nov. 2005 à 13:32
10 nov. 2005 à 13:32
Un exemple de singleton final:
;-)
HackTrack
/* * Created on 10-nov.-2005 * Author: HackTrack */ public final class SingletonDemo { private static SingletonDemo instance; private SingletonDemo() { super(); } public static SingletonDemo getInstance(){ if(instance==null) instance=new SingletonDemo(); return instance; } }
;-)
HackTrack
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
9 nov. 2005 à 14:38
9 nov. 2005 à 14:38
Si une classe est un singleton, il ne peut exister qu'une seule instance de cette classe.
Avec une classe "normale", on peut faire plusieurs instances de cette classe.
C'est utile pour gérer, par exemple, une connexion à une base de données (on établie une fois pour toute la connexion à la base de données, et tous les utilisateurs de cette classe passent par la même instance de l'objet pour accéder à la base.)
Avec une classe "normale", on peut faire plusieurs instances de cette classe.
C'est utile pour gérer, par exemple, une connexion à une base de données (on établie une fois pour toute la connexion à la base de données, et tous les utilisateurs de cette classe passent par la même instance de l'objet pour accéder à la base.)
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
9 nov. 2005 à 14:54
9 nov. 2005 à 14:54
Salut,
J'ai pas fait beaucoup de java, mais dans la conception objet il y a une différence
entre une classe statique et un singleton :
singleton : une seule instance de la classe dans le programme
classe statitque : plusieurs instances manipulant les mêmes paramêtres
Donc dans le concept, un singleton ne peut se dériver qu'en singleton, une classe
statique, elle, peut se dériver en classe 'classique'.
Un singleton peut néanmoins être un paramêtre d'instance dans d'autres classes.
A+, crabs
J'ai pas fait beaucoup de java, mais dans la conception objet il y a une différence
entre une classe statique et un singleton :
singleton : une seule instance de la classe dans le programme
classe statitque : plusieurs instances manipulant les mêmes paramêtres
Donc dans le concept, un singleton ne peut se dériver qu'en singleton, une classe
statique, elle, peut se dériver en classe 'classique'.
Un singleton peut néanmoins être un paramêtre d'instance dans d'autres classes.
A+, crabs
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
9 nov. 2005 à 14:58
9 nov. 2005 à 14:58
ah pardon, j'ai lu trop vite.
Je comparais classe normale avec singleton, et pas classe statique et singleton.
La classe static n'a pas besoin d'être instanciée pour qu'on puisse appeller ses méthodes et accéder à ses attributs.
Le constructeur n'a pas besion d'être appellé.
Le singleton (comme toute classe non statique) doit obligatoirement être instancié.
Je comparais classe normale avec singleton, et pas classe statique et singleton.
La classe static n'a pas besoin d'être instanciée pour qu'on puisse appeller ses méthodes et accéder à ses attributs.
Le constructeur n'a pas besion d'être appellé.
Le singleton (comme toute classe non statique) doit obligatoirement être instancié.
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
9 nov. 2005 à 15:18
9 nov. 2005 à 15:18
Ca a l'air bien ce concept de classe statique en JAVA, pour l'instant je n'ai pu
manipuler que des methodes statiques, ne nécessitant pas d'instanciation en C++.
Remarque en C++, le singleton il faut aussi se le coder en créant un
constructeur privé et méthode statique pour obtenir l'instance :(
Pour mon info, JAVA gère nativement le concept de classe 'virtuelle pure',
'statique' et 'singleton' ?
manipuler que des methodes statiques, ne nécessitant pas d'instanciation en C++.
Remarque en C++, le singleton il faut aussi se le coder en créant un
constructeur privé et méthode statique pour obtenir l'instance :(
Pour mon info, JAVA gère nativement le concept de classe 'virtuelle pure',
'statique' et 'singleton' ?
anawak
Messages postés
53
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
1 août 2010
9
9 nov. 2005 à 15:22
9 nov. 2005 à 15:22
Salut
ben en fait je voulais dire classe "singleton" et final classe:
puisse qu'on ne peut pas deriver une "final class" et non plus un singleton ,alors je me demandais comment faire la difference.
je sens que tu es bien bien dans le truc.Alors
est ce qu'un singleton a quelques specificités dans sa declration pour qu'on puisse se rendre compte qu'il est singleton à 1ère vue?
Envoie un petit exempled'une classe dans ma boite ;pour je puisse remarquer ces spécificités§§§§(en fin si tu es d'accord !!!!!!!);
e-mail:anawak2002@yahoo.fr
ben en fait je voulais dire classe "singleton" et final classe:
puisse qu'on ne peut pas deriver une "final class" et non plus un singleton ,alors je me demandais comment faire la difference.
je sens que tu es bien bien dans le truc.Alors
est ce qu'un singleton a quelques specificités dans sa declration pour qu'on puisse se rendre compte qu'il est singleton à 1ère vue?
Envoie un petit exempled'une classe dans ma boite ;pour je puisse remarquer ces spécificités§§§§(en fin si tu es d'accord !!!!!!!);
e-mail:anawak2002@yahoo.fr
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
9 nov. 2005 à 15:29
9 nov. 2005 à 15:29
est ce qu'un singleton a quelques specificités dans sa declration pour qu'on puisse se rendre compte qu'il est singleton à 1ère vue?
En Java, je ne sais plus, mais de mémoire le singleton devait être implémenté (créé par le développeur). Ce n'était pas un simple mot-clé.
Maintenant ça fait un moment que je ne fais plus de Java...
En Java, je ne sais plus, mais de mémoire le singleton devait être implémenté (créé par le développeur). Ce n'était pas un simple mot-clé.
Maintenant ça fait un moment que je ne fais plus de Java...
Une classe Static est construite à la volée au démarrage de l'application.
Cette classe static est montée en mémoire et est prete à l'emploi.
Un singleton est construite 'à la demande' en l'exécutant la 1ère fois.
Pour les puriste, le singleton est plus 'optimisé' intellectuellement.
Perso, je préfère la classe static. Elles ne pénalisent pas le 1er appel et en plus elle est plus sure (gérer par le framework). Le singleton est géré par le code (certes par un design pattern connu) qui peut être propre à chacun.
Cette classe static est montée en mémoire et est prete à l'emploi.
Un singleton est construite 'à la demande' en l'exécutant la 1ère fois.
Pour les puriste, le singleton est plus 'optimisé' intellectuellement.
Perso, je préfère la classe static. Elles ne pénalisent pas le 1er appel et en plus elle est plus sure (gérer par le framework). Le singleton est géré par le code (certes par un design pattern connu) qui peut être propre à chacun.