Pattern Singleton en Flash

Posted on 17/11/2009 · Posted in Flash

Suite au commentaire de webstorming sur l’article : Flash – Restreindre l’instanciation d’une classe par un seul objet.

Voici l’implémentation du pattern singleton en Flash.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class PatternSingleton
{
    private static var _instance : Object;

    public function PatternSingleton () : void
    {
        if (_instance)
            throw new Error ("Pattern Singleton : only one instance is permit");
        _instance = this;
    }

    public function sayHello () : String
    {
        return "Hello World";
    }

    public static function get instance () : PatternSingleton
    {
        if (!_instance)
            new PatternSingleton ();
        return PatternSingleton (_instance);
    }
}

Nous avons donc une class ne pouvant être instanciée qu’une seule fois, et accessible de n’importe où au sein de notre application.

1
trace (PatternSingleton.instance.sayHello ());

Wikipédia

L’implémentation que l’on trouve sur Wikipédia est différente de celle ci-dessus.
En effet, elle utilise la définition d’une constante globale sans modification du constructeur.
Le problème induit, c’est que l’instanciation multiple n’est pas interdite au sein de l’application. Et la compréhension par un débutant est moins aisée.