Добрый день.
Почитал (здесь: Шаблон проектирования Singleton) про шаблон Singleton и про его различные варианты реализации.
Всё понятно, но есть маленький вопрос:
public class EagerInitializedSingleton {
private static final EagerInitializedSingleton instance = new EagerInitializedSingleton();
// конструктор private, чтобы не было возможности создать экземпляр класса извне.
private EagerInitializedSingleton(){}
public static EagerInitializedSingleton getInstance(){
return instance;
}
}
В качестве недостатка этого варианта указывается потеря ленивой инициализации (Объект instance будет создан classloader-ом во время инициализации класса). И вроде всё ясно и понятно, но...Все классы загружаются в JVM динамически, при первом использовании класса. И я никак не могу в силу неопытности придумать пример, когда вызов метода getInstance() будет являться не первым использованием класса, который представлен выше в коде. Приведите, пожалуйста, практичекий пример, если не сложно.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ