Показать сообщение отдельно
Старый 18.03.2008, 02:24
lowka вне форума Посмотреть профиль Отправить личное сообщение для lowka Найти все сообщения от lowka
  № 11  
Ответить с цитированием
lowka

Регистрация: Sep 2006
Сообщений: 256
Цитата:
Сообщение от divinus
собств. вопрос... )
но вот встала потребность создать "одиночку" на AS3, а там как мне помнится запрещается объявления конструктора "приватным"... как быть? может быть кто-то сталкивался?
Можно воспользоваться статическим блоком инициализации - это гарантирует нам, что экземпляр нашего класса будет создан(в момент первого обращения к классу), а желание создать еще один экземпляр(как уже упоминалось) выкидыванием исключения, когда экземпляр уже создан.
Код:
package  {
	public class Singleton {
		
		private static var _instance:Singleton;
		
		//static block
		{
			_instance = new Singleton();
		}
		
		public function Singleton() {
			if (_instance != null) {
				throw new ArgumentError("bla-bla-bla");
			}
		}
		
		public static function getInstance():Singleton {
			return _instance;
		}
	}
}
__________________
:emocry: