пятница, 23 ноября 2007 г.

Вариант реализации паттерна Singleton с проверкой булева флага на возможность инстанцирования. AS3

package
{
/**
* Пример реализации паттерна Одиночка на языке ActionScript 3
* с проверкой специального флага на возможность инстанцирования.
*
* @author Yuri "Barmaley" Yarovoy
* @version 1.0
*/
public class Singleton
{
private static var __instance:Singleton;
private static var __allowInstantiation:Boolean = false;

public static function get instance():Singleton
{
if(!__instance)
{
// Разрешаем создание экземпляра класса.
__allowInstantiation = true;
// Создаем экземпляр.
__instance = new Singleton();
// Запрещаем создание экземпляров.
__allowInstantiation = false;
}
return __instance;
}
/**
* Конструктор.
*/
public function Singleton()
{
if(!__allowInstantiation)
throw new Error("Вы не можете создавать экземпляры класса при помощи конструктора. Для доступа к экземпляру используйте Singleton.instance.");
}
}
}

2 комментария:

Unknown комментирует...

А могли бы вы привести пример как использовать Singleton класс. т.е. как например в другом классе обратиьтся к нему.

alex комментирует...

Может кому и понадобится
private sin:Singlton;
sin = Singlton.instance