Pattern Singleton en Flash

Flash 11 Commentaires »

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.

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.

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.

Mots-clefs :, , , , ,
 

Flash – Restreindre l’instanciation d’une classe par un seul objet

AIR, Flash, Flex 4 Commentaires »

Comment restreindre l’instanciation d’une classe à une autre classe.

Voici une idée complètement « crazy » au quelle je vais apporter une solution à travers ce billet.
Nous allons utiliser un principe connu par de nombreux framework Web qui permet d’assurer la validité d’un formulaire: Le jeton !

L’intérêt étant de combiner cela avec le pattern Factory.

public class Master
{
	private static var _jeton	: Number	= -1;
 
	public function Master()
	{
	}
 
	public static function createSlave () : Slave
	{
		var _tmpSlave	: Slave;
 
		_jeton		= Math.random() * 500;
		_tmpSlave	= new Slave (_jeton);
		_jeton		= -1;
 
		return _tmpSlave;			
	}
 
	public static function get jeton () : Number
	{
		return _jeton;
	}
}
public class Slave
{
	public function Slave(_pJeton : Number = 0) : void
	{
		if (Master.jeton !== _pJeton && Master.jeton !== -1)
			throw new Error ("Instanciation obligatoire par Master.createSlave");
	}
}
new Slave (); //throw Error
Master.createSlave (); //Retourne un objet du type Slave
Mots-clefs :, , , , ,
 

Reflex : Architecture MVC

Flex 7 Commentaires »

Fabien de la Fabrick a publié une « micro-architecture » MVC pour Flex.
Ces mots de présentation sont :

Souvent dans le monde de Flex, les équipes ne sont pas forcement homogènes. Certains sont habitués à la rigueur de Java, d’autres sont plus “devsigners freestyle” venant du monde Flash. Les premiers aiment les grosses mécaniques comme PureMVC, ou Prana Framework “Spring like”. Les seconds connaissent au mieux Cairngorm, au pire confondent MVC et VMC – ce qui n’a rien a voir, sauf si vous faites une application riche sur le thème de la ventilation.

Pour l’instant deux didacticiels sont disponibles : Introduction et Exemple et l’utilisation de l’IOC où il faut comprendre « Injection Of Content » plutôt que « Inversion Of Control« .

Ceci est un article orienté publicité d’une part, mais aussi « déploiement ». Toute personne recherchant un framework MVC tombera sur PureMVC ou Cairngorm, et bien maintenant, il y aura aussi ReFlex qui entrera dans la liste.

Si vous utilisez ReFlex, n’hésitez pas à faire des retours à l’auteur.

Edit : Oubli de ma part, gros framework incluant le pattern MVC : Vegas développé par eKameleon. D’ailleurs Vega n’inclue pas uniquement le pattern MVC, mais aussi beaucoup d’autres choses, il peut avoir l’air très difficile à appréhender. Mais comme toute nouvelle découverte, cela demande de l’investissement. Mais rassurez-vous, c’est un framework très riche en documentation.

A vous de faire votre choix ;)

Mots-clefs :, , , , , , , , ,
 
Designed by NattyWP Wordpress Themes.
Images by desEXign.