Création : le Factory Method Pattern

Le 29 juillet 2011 - Design Patterns, Tutoriaux  -  1 Commentaire

Le rôle d'une Factory est d'instancier des objets de différents types sans spécifier la classe de l'objet qui sera créer. Son avantage est d'éviter la redondance entre ces classes.
Les Factory Method sont en général implémenter par un Singleton.

package
{
    public class ProductFactory
    {
        public function ProductFactory()
        {
            throw new Error("Utilisez ProductFactory.getProduct(...) pour accéder à cette classe.");
        }
 
        public static function getProduct(product:String):IProduct
        {
            if (product == "p1")
            {
                return new Product1();
            }else if (product == "p2"){
                return new Product2();
            }else{
                throw new Error("Aucun type ne correspond à ce produit");
            }
        }
    }
}

Explications :
On remarque que la classe ressemble étrangement à un Singleton, sans être instancié; getProduct remplaçant getInstance.

public static function getProduct(product:String):IProduct

En fonction d'un paramètre, la Factory Method va retourner le type correspondant. Tous les types retournés auront des paramètres en commun que l'on regroupe dans l'interface IProduct.

Pour appeler cette classe, on fera ainsi :

var product:IProduct = ProductFactory.getProduct(productID);

Commentaires (1)

  • essayez de faire cela dans ;)
    ils pr

Laisser un commentaire