1. Список Java-параллелизма на практике
Скопируйте код кода следующим образом:
публичный класс Синглтон {
частный статический класс SingletonHolder {
общедоступный статический ресурс Singleton = новый Singleton();
}
общественный статический синглтон getResource() {
вернуть SingletonHolder.resource;
}
частный синглтон(){
}
}
2. Эффективная Java
Скопируйте код кода следующим образом:
публичный класс Синглтон {
публичный статический окончательный синглтон INSTANCE = новый синглтон ();
частный синглтон(){}
публичный недействительный метод(){
//...
}
public static void main(String[] a){
//Вызов метода.
Синглтон.ЭКЗЕМПЛЯР.метод();
}
}
3. Используйте перечисления для создания отдельных экземпляров.
Скопируйте код кода следующим образом:
/**
* Используйте перечисления для умелого создания отдельных экземпляров.
*/
публичное перечисление Синглтон {
ПРИМЕР;
публичный недействительный метод(){
//...
}
public static void main(String[] a){
//Вызов метода.
Синглтон.ЭКЗЕМПЛЯР.метод();
}
}
4. Двойной замок
Скопируйте код кода следующим образом:
публичный класс Синглтон {
частный статический изменчивый экземпляр Singleton = null;
/**
* Предотвращайте доступ других к новым объектам
*/
частный синглтон(){
System.out.println("инициализация");
}
публичный статический синглтон getInstance(){
если (экземпляр == ноль) {
синхронизировано (Singleton.class) {
если (экземпляр == ноль) {
экземпляр = новый Синглтон ();
}
}
}
вернуть экземпляр;
}
}