Sujets sur : cours design pattern formation video

Cours ActionScript 3 ‘cours design pattern formation video’

Comment créer un Singleton en AS3 ?

2 questions

Ecrit le 24 mars par Matthieu
Publié dans le(s) sujet(s) ActionScript 3

Dans ce tutoriel, nous allons implémenter le design pattern (ou modèle de conception) Singleton en ActionScript 3.

Et voici le résultat obtenu dans un swf :

https://www.actionscript-facile.com/wp-content/uploads/2011/03/singleton-ex.swf

Téléchargez le code source complet de l’exemple :

Télécharger “Implémentation Design Pattern Singleton” singleton-ex.zip – Téléchargé 189 fois – 25 Ko

Et vous, comment implémentez-vous le pattern Singleton en AS3 ?

Il y a, bien évidemment, plusieurs solution pour créer une classe Singleton en ActionScript 3.

Postez votre code AS3 dans les commentaires, je suis curieux de voir votre code.

package
{
	import nl.demonsters.debugger.MonsterDebugger;
 
	/**
	 * Classe générique de configuration d'une application
	 *
	 */
	public class Config
	{
		private static var _oInstance : Config = null;// contient l'instance unique de la classe
		private static var allowInstance:Boolean = false; // empêche l'instanciation de la classe à partir du constructeur
 
		/* paramètres de notre classe de Configuration */
		public var texte:String;
 
		/**
		 * Returns singleton instance of <code>Config</code> class.
		 *
		 * @return The singleton instance of <code>Config</code> class.
		 */
		public static function getInstance() : Config
		{
			// si l'instance n'existe pas, on la crée
			if ( !(Config._oInstance is Config) )
			{
				allowInstance = true;// autorise la création d'une instance
				Config._oInstance = new Config();
				allowInstance = false;// désactive la création d'autre instance
			}
 
			// renvoie toujours la même instance de la classe
			return Config._oInstance;
		}
 
		/**
		 * Constructeur
		 */
		public function Config() : void
		{
			if (!allowInstance)// test s'il est possible d'instancier la classe
			{
				MonsterDebugger.trace(this, 'This class cannot be instantiated from the constructor' );
				// throw new Error ('This class cannot be instantiated from the constructor');
			}
			else // initialisation des paramètres de l'objet Config
				texte = "Bienvenue sur ActionScript-Facile";
		}
	}
}