Эта реализация:
Код: Выделить всё
static Singleton& instance()
{
static Singleton s;
return s;
}
Код: Выделить всё
public class SingletonDemo {
private static volatile SingletonDemo instance = null;
private SingletonDemo() { }
public static SingletonDemo getInstance() {
if (instance == null) {
synchronized (SingletonDemo .class){
if (instance == null) {
instance = new SingletonDemo ();
}
}
}
return instance;
}
}
- Как первая реализация обеспечивает соблюдение одноэлементного шаблона? Я предполагаю, что это связано с ключевым словом static, но я надеюсь, что кто-нибудь сможет подробно объяснить мне, что происходит под капотом.
- Что из этих двух стилей реализации предпочтительнее другого? Каковы плюсы и минусы?
Подробнее здесь: https://stackoverflow.com/questions/177 ... -singleton
Мобильная версия