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.");
}
}
}
{
/**
* Пример реализации паттерна Одиночка на языке 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 комментария:
А могли бы вы привести пример как использовать Singleton класс. т.е. как например в другом классе обратиьтся к нему.
Может кому и понадобится
private sin:Singlton;
sin = Singlton.instance
Отправить комментарий