public class Singleton{ private Singleton(){}; public Singleton getInstance(){ return SingletonCreator.instance; } private static class SingletonCreator{ public static final Singleton instance = new Singleton(); } }
mind.out.stream().filter(e -> e.contains("java") || e.contains("programming")).forEach(e -> blog::write)
Показаны сообщения с ярлыком singleton. Показать все сообщения
Показаны сообщения с ярлыком singleton. Показать все сообщения
пятница, 10 июля 2015 г.
Идеальный singleton
Не буду рассказывать, что такое singleton и для чего он нужен. Расскажу про то, как его писать. Всегда склонялся к варианту double check, но после статьи про текущую модель памяти в java, мир для меня перестал быть прежним. Оказывается, volatile довольно затратная операция и немного лучше synchronized. Наилучшим же вариантом с ленивой инициализацией будет следующий код:
Метки:
паттерны проектирования
,
java
,
singleton
Подписаться на:
Сообщения
(
Atom
)