Design pattern en AS3 #3 Factory

Cet article est le troisième d’une série de sept articles traitant de l’implémentation des principaux design pattern en Action Script 3.

AS3 est un langage permettant de réaliser des applications hybrides mobiles via Adobe AIR. Le système Adobe AIR permettant aux développeurs d’intégrer le même code dans des applications et jeux natifs pour les ordinateurs de bureau Windows et Mac OS, et également pour les périphériques iOS et Android. Ce langage est un bon moyen de s’initier aux patrons de conception et aux paradigmes objets car il est strict en terme de syntaxes et d’architecture. Ces articles comportent une présentation théorique et un exemple pratique.

Aujourd’hui la fabrique

La fabrique (factory) est un patron de conception de création utilisé en programmation orientée objet. Une fabrique de création est une classe qui n’a pour rôle que de construire des objets. Cette classe utilise des interfaces ou des classes abstraites pour masquer l’origine des objets. Les objets créés n’ont pas de types prédéfinis. Voici un exemple de factory :

public static function prebuildContent(aDecoIdentif:Array = null):IContenu

{

            var resultatContenu:IContenu;

            if(aDecoIdentif != null)

            {

                        for (var i:int = 0; i< aDecoIdentif.length ; i++)

                        {

                                   if(aDecoIdentif[i] == DECO_DRAG)

                                   {

                                               resultatContenu = new DragContenu(resultatContenu);

                                   }

                                   else if(aDecoIdentif[i] == DECO_DB_CLOSE)

                                   {

                                               resultatContenu = new DoubleClickContenu(resultatContenu);

                                   }

                        }

            }

            return resultatContenu;

}

L’utilisation de switch / case est courante dans l’utilisation d’une fabrique :

static public function createVue(type:String):AbstractView

{

            switch(type)

            {

                        case "type1":

                                   return new ViewOne();

                                   break;

                        default:

                                   break;

            }

            return null;

}

Ici la méthode de création d’objet renvoie alors une instance étendue d’abstractView (classe abstraite)  

Auteur : Eric Duport, Ingénieur Concepteur Développeur à SQLI Lyon