Поиск…


замечания

Шаблон singleton имеет целью разрешить существование только одного экземпляра класса в любой момент времени.

Предотвращение прямого создания экземпляра через конструктор обычно предотвращается, делая его закрытым. Однако это невозможно в As3, и поэтому необходимо использовать другие способы управления количеством экземпляров.

Синглтон-исполнитель через частную инстанцию

В этом подходе доступ к одному осуществляется через статический метод:

Singleton.getInstance();

Чтобы принудительно применять только один экземпляр синглтона, частная статическая переменная сохраняет экземпляр, а любые дополнительные попытки создать экземпляр экземпляра выполняются внутри конструктора.

package {

public class Singleton {

    /** Singleton instance */
    private static var _instance: Singleton = new Singleton();

    /** Return singleton instance. */
    public static function getInstance():Singleton {
        return _instance;
    }

    /** Constructor as singleton enforcer. */
    public function Singleton() {
        if (_instance)
            throw new Error("Singleton is a singleton and can only be accessed through Singleton.getInstance()");
    }

}
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow