![]() |
|
||||||||||
|
|||||
|
Будет ли этот код соответсвовать аналогичному коду в Java?
т.е. будет ли создаватся только один екземпляр данного класса? Или у АС3 свои правила написания синглтона? |
|
|||||
|
А без использования флекса?
А если сделать конструктор пабликом но сознательно его не вызывать? |
|
|||||
|
4AM Games
|
Цитата:
package com.seeqpod.services
{
public class SingletonExample
{
public static function get instance():SingletonExample
{
if(_instance == null)
{
locked = false;
_instance = new SingletonExample();
locked = true;
}
return _instance;
}
private static var _instance:SingletonExample = null;
private static var locked:Boolean = true;
public function SingletonExample()
{
if(SingletonExample.locked)
{
throw new Error('this is Signleton class, use instance property instead');
return;
}
}
}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Спасибо, это лишнее. Если достаточно просто не обращатся к конструктору напрямую, это будет в самый раз.
|
|
|||||
|
вот ссылки в тему:
http://yarovoy.com/2007/10/24/single...ctionscript_3/ http://yarovoy.com/2007/10/20/single...tatic_members/
__________________
Челябинские флешеры настолько суровы, что пишут код во Flash IDE |
|
|||||
|
Спасибо
|
|
|||||
|
стервочка (я мужик)
|
с локом странный пример
![]() зачем лок, если можно проверяеть есть ли экземпляр? Кстати генерация ошибки не всегда нужна. Например SharedObject не генерит ошибки, хотя синглтон
package {
public class SingletonExample {
private static const _instances:Dictionary = new Dictionary();
public static function getInstance(param:Object):SingletonExample {
var instance:SingletonExample = _instances[param];
if (!instance) {
_instances[param] = instance = new SingletonExample();
instance.init(param);
}
return instance;
}
public function SingletonExample() {
super();
}
private function init(param:Object):void {
// инициализация
}
}
}
Последний раз редактировалось BlooDHounD; 26.10.2007 в 11:24. |
|
|||||
|
4AM Games
|
Цитата:
Пример с локом легко трансформируется в Multiton.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
стервочка (я мужик)
|
извините
не знал один фиг лок лишний. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|