Шаблон разработки, который гарантирует, что точно один экземпляр всего приложения конкретного класса существует. Одна из Банды creational шаблонов разработки Four.

Singleton является шаблоном разработки, который ограничивает инстанцирование класса к одному объекту. Это полезно, когда точно один объект необходим для координирования действий через систему. Понятие иногда обобщается к системам, которые работают более эффективно, когда только один объект существует, или которые ограничивают инстанцирование определенным числом объектов. Термин прибывает из математического понятия одиночного элемента.

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; } } 

Реализации Singleton могут включать дополнительные функции, такие как ориентированная на многопотоковое исполнение инициализация или некоторая форма порядка инициализации.

Singleton является возможно самой известной, наиболее используется, наиболее злоупотребляется, и самый спорный существующий шаблон разработки, часто ведя к горячим обсуждениям между его сторонниками и противниками.

Это - одна из Банды creational Four, сначала опубликованный в Гамме и др. заказывают "Шаблоны разработки: Элементы Допускающего повторное использование Объектно-ориентированного программного обеспечения".

Больше информации доступно на Википедию.