1. Daftar Java Concurrency Dalam Prakteknya
Copy kode kodenya sebagai berikut:
kelas publik Singleton {
kelas statis pribadi SingletonHolder {
sumber daya Singleton statis publik = Singleton baru();
}
publik statis Singleton getResource() {
return SingletonHolder.resource;
}
pribadi Singleton(){
}
}
2. Java yang Efektif
Copy kode kodenya sebagai berikut:
kelas publik Singleton {
public static final Singleton INSTANCE = new Singleton();
pribadi Singleton(){}
metode kekosongan publik(){
//...
}
public static void main(String[] a){
//Metode panggilan.
Singleton.INSTANCE.metode();
}
}
3. Gunakan enumerasi untuk secara cerdik membuat satu instance
Copy kode kodenya sebagai berikut:
/**
* Gunakan enumerasi untuk secara cerdik membuat satu instance
*/
enum publik Singleton {
CONTOH;
metode kekosongan publik(){
//...
}
public static void main(String[] a){
//Metode panggilan.
Singleton.INSTANCE.metode();
}
}
4. Kunci ganda
Copy kode kodenya sebagai berikut:
kelas publik Singleton {
instance Singleton statis pribadi yang mudah menguap = null;
/**
* Mencegah orang lain dari objek baru
*/
pribadi Singleton(){
Sistem.keluar.println("init");
}
getInstance Singleton statis publik(){
jika(contoh == nol){
disinkronkan(Singleton.class){
jika(contoh == nol){
contoh = new Singleton();
}
}
}
contoh kembali;
}
}