Création : le Singleton Pattern

Le 27 juillet 2011 - Design Patterns, Tutoriaux  -  Pas de commentaires

Le Singleton est utilisé un peu partout, comme par exemple pour les classes mx.managers (DragManager, CursorManager, …). On l'utilise par exemple pour enregistrer des données persistantes (ex: score d'un jeu). Son intérêt est de posséder une et une seule instance de la classe. Elle est accessible de partout et doit donc avoir un seul point d'accès global.

package
{
    public class Singleton
    {
        private static var _instance:Singleton;
 
        public function Singleton()
        {
            if( _instance ) 
                throw new Error( "Utilisez Singleton.getInstance() pour accéder à cette classe." ); 
        }
 
        public static function getInstance():Singleton
        {
            if(_instance == null)
                _instance = new Singleton();
 
            return _instance;
        }
    }
}

Explications :

private static var _instance:Singleton;

On passe l'instance en private pour empêcher un accès depuis l'extérieur de la classe. L'attribut static autorise un accès depuis à la variable depuis une méthode statique (implicitement Singleton._instance).

 

public static function getInstance():Singleton

Donne un accès depuis l'extérieur à l'instance. _instance est instancié, une et une seule fois, au premier appel. On peux également directement l'instancier dans la déclaration.

 

Ensuite on peux ajouter ses méthodes et getter/setter que l'on appellera de la façon suivante :

Singleton.getInstance().score

Laisser un commentaire