Design pattern en AS3 #4 Abstract Factory

Dans le dernier article portant sur les design patterns en ActionScript3, nous avons abordé la factory. Aujourd’hui voyons l’Abstract factory (fabrique abstraite).

Elle encapsule un groupe de factory ayant une thématique commune. Le code crée alors une implémentation concrète de la fabrique abstraite, puis utilise les interfaces génériques pour créer des objets concrets de la thématique.

Le client ne se préoccupe pas de savoir laquelle de ces fabriques a donné un objet concret, car il n’utilise que les interfaces génériques des objets produits. Ce patron de conception sépare les détails d’implémentation d’un ensemble d’objets de leur usage générique.

Exemple de mise en œuvre :

private var _contenu0:IContenu;

private var _contenu1:IContenu;

private var _contenu2:IContenu;



public function creator(content:Object)

{

/*

            ABSTRACT FACTORY

            factory utilise d’autres factory , cache les classes fabricant l’objet

            */

        

            _contenu1 = FactoryContent.prebuild(content);

            _contenu2 = FactoryContent.prebuild(_content);

           

}

 

Le contenu de la classe FactoryContent sera alors :

 

public class FactoryContent

{

            public function FactoryContent()

            {

            }

           

            public static function prebuild(content:Object):IContenu

            {

                        var resultatContenu:IContenu;

                       

                        resultatContenu = BContenu.prebuildContent(content);

                       

                        return resultatContenu;

            }

           

}

Mais on peut toujours construire des contenus “from scratch” sans factory :

 

_contenu0 = BContenu.prebuildContent(_content);

_contenu1 = BContenu.prebuildContent(_content);

_contenu2 = BContenu.prebuildContent(_content]);

public static function prebuildContent(content:Object):IContenu

{

            var resultatContenu:IContenu;

            resultatContenu = new BContenu(content);

           

            return resultatContenu;

}

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

 

Découvrez les articles précédents :

Design pattern en AS3 #1 Singleton

Design pattern en AS3 #2 Delegate

Design pattern en AS3 #3 Factory

 

0 commentaires

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscription newsletter

Ne manquez plus nos derniers articles !