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
Bonjour
Cette question me tracasse depuis un certain moment ,alors donnez votre avis:
Quelle est la différence entre une classe Static et une classe "singletone"(en java bien sûr)?

merci à l'avance

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 655
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.
2
Utilisateur anonyme
10 nov. 2005 à 13:32
Un exemple de singleton final:

/*
 * 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
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
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.)
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
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
0

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 655
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é.
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
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' ?
0
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
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
0
on parle d'un attrib static ou Method static mais pas d'une class static !!!!!
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
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...
0
momo_le_codeur_de_l'extreme
4 mai 2010 à 16:56
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.
0