Szukaj…


Uwagi

Wzorzec singletonu ma na celu umożliwienie istnienia tylko jednego wystąpienia klasy w danym momencie.

Zapobieganie bezpośredniemu tworzeniu instancji za pomocą konstruktora zwykle zapobiega się przez ustawienie go jako prywatnego. Nie jest to jednak możliwe w As3, dlatego należy zastosować inne sposoby kontrolowania liczby instancji.

Egzekwator Singleton za pośrednictwem prywatnej instancji

W tym podejściu dostęp do singla uzyskuje się metodą statyczną:

Singleton.getInstance();

Aby wymusić tylko jedno wystąpienie singletonu, prywatna zmienna statyczna zachowuje to wystąpienie, zaś wszelkie dodatkowe próby utworzenia wystąpienia są wymuszane w konstruktorze.

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow