1. Liste des concurrences Java en pratique
Copiez le code comme suit :
classe publique Singleton {
classe statique privée SingletonHolder {
ressource Singleton statique publique = new Singleton ();
}
public statique Singleton getResource() {
renvoyer SingletonHolder.resource ;
}
Singleton privé(){
}
}
2. Java efficace
Copiez le code comme suit :
classe publique Singleton {
public statique final Singleton INSTANCE = new Singleton();
Singleton privé(){}
méthode public void(){
//...
}
public static void main(String[] a){
//Appel de la méthode.
Singleton.INSTANCE.method();
}
}
3. Utilisez des énumérations pour créer intelligemment des instances uniques
Copiez le code comme suit :
/**
* Utilisez des énumérations pour créer intelligemment des instances uniques
*/
énumération publique Singleton {
EXEMPLE;
méthode public void(){
//...
}
public static void main(String[] a){
//Appel de la méthode.
Singleton.INSTANCE.method();
}
}
4. Double verrouillage
Copiez le code comme suit :
classe publique Singleton {
Instance Singleton volatile statique privée = null ;
/**
* Empêcher les autres d'accéder à de nouveaux objets
*/
Singleton privé(){
System.out.println("init");
}
public statique Singleton getInstance(){
si(instance == null){
synchronisé(Singleton.class){
si(instance == null){
instance = nouveau Singleton();
}
}
}
instance de retour ;
}
}