Core
35 уровень
Екатеринбург

Singleton.

Статья из группы Архив info.javarush
Добрый день. Почитал (здесь: Шаблон проектирования 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() будет являться не первым использованием класса, который представлен выше в коде. Приведите, пожалуйста, практичекий пример, если не сложно.
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Fatal Уровень 14
12 октября 2016
У вас в синглтоне всегда одно поле будет? Имеется ввиду что класс инициализируется во время обращение к любому из его полей — например константы. Вот еще можно почитать