Зачем нужны синглтоны? 
		
		
		
		Я имею в виду в JS. Я прочитал чуток про них, пишут что это класс который имеет только один экземпляр. А зачем это нужно? Не проще ли сразу просто создать объект? А если нужна инкапсуляция, просто закрыть его в замыкании? 
	 | 
	
		
 Ну во-первых, синглтон - шаблон для языков программирования в целом. 
	Не во всех же языках можно взять и создать объект с методами, как в js. Во-вторых, ты говоришь "сразу просто создать объект". Но в примерах синглтонов, наоборот, применяют отложенную инициализацию..  | 
	
		
 Цитата: 
	
  | 
	
		
 Например, чтобы отложить инициализацию.. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
  | 
	
		
 Цитата: 
	
 При этом мы не расходуем ресурсы на его создание на каждом хите. А только если наступило то событие когда он действительно нужен. При этом нам не надо везде по коду проверять существует он или нет - просто используем метод предназначенный для получения ссылки.  | 
	
		
 У тя есть 100500 виджетов, каждый хочет общаться с БД, но прямой доступ мы ему не даём, поэтому он общается со специальный драйвером, но если каждый виджет начнёт создавать 100500 драйверов, то это будет не эффективно, а с другой стороны если виджет начнёт много знать и структуре приложения и как то проверять создание экземпляра драйвера, то это будет плохо с точки зрения архитектуры, поэтому удобно юзать синглтоны: виджет "как будто" создаёт свой экземпляр, но на деле всё сводится к одному единственному. 
	 | 
	
		
 Влезу. 
	Цитата: 
	
 Как пишут на русской википедии - невозможно задать порядок инициализации. Так вот если вы замечаете такие симптомы, то скорее всего у вас логика нарушена. Если с логикой все более-менее, то порядок инициализации on-demand никого не колебет. Это не десктоп, это серверные-клиентские скрипты - пронесся и умер. Чем быстрее тем лучше.  | 
	
		
 Самым типичным синглетоном является линк к драйверу БД. Не будете же коннектиться в каждой функции. Ну вот, делается линк и втыкается в такую волшебную проперть под геттером - если она есть - выдается, если нет - подключается класс, делается инстансь, коннект, сохраняется, выполняется, возвращается - теперь только юзай. 
	В результате можно заранее понатыкать х знает сколько и ничем не пользоваться если не надо. У меня со старых проектов заезжают такие тычки в новые и торчат никому не мешая, пока не вызовешь и не обломишься без соответствующего класса. Паттерн сиглетона - мутант между статикой и динамикой, можно считать кешированием.  | 
| Часовой пояс GMT +3, время: 05:14. |