Le design pattern Factory : simplifiez la création d'objets

Découvrez comment le design pattern Factory peut simplifier la création d'objets dans une application.
Le design pattern Factory : simplifiez la création d'objets
Design Patterns
5 min read
Lylian Guerra--Rago

Le design pattern Factory : simplifiez la création d’objets

Le design pattern Factory est un modèle de conception qui facilite la création d’objets dans une application. Il est particulièrement utile lorsque vous avez besoin de créer des objets complexes ou lorsque le type d’objet à créer dépend de certaines conditions. Dans cet article, nous allons explorer ce qu’est le design pattern Factory, pourquoi il est utile, comment il fonctionne, et nous verrons un exemple concret d’implémentation.

Qu’est-ce que le design pattern Factory ?

Le design pattern Factory, également connu sous le nom de Factory Method ou Constructeur virtuel, est un modèle de conception créationnel qui définit une interface pour créer des objets dans une classe mère, mais délègue le choix des types d’objets à créer aux sous-classes. Il existe deux variantes principales du pattern Factory :

  1. Factory Method : une méthode dans une classe qui crée des objets.
  2. Abstract Factory : une interface pour créer des familles d’objets liés ou dépendants sans spécifier leurs classes concrètes.

Pourquoi utiliser le design pattern Factory ?

Le design pattern Factory offre plusieurs avantages :

  • Encapsulation : il encapsule le processus de création d’objets, ce qui réduit la duplication de code.
  • Flexibilité : il permet de changer facilement le type d’objets créés sans modifier le code client.
  • Maintenance : il facilite la maintenance et l’extension du code en ajoutant de nouvelles classes sans modifier le code existant.
  • Simplicité : il simplifie le code en centralisant la logique de création d’objets.

Comment fonctionne le design pattern Factory ?

Le design pattern Factory fonctionne en déléguant la création d’objets à des méthodes ou des classes spécifiques. Voici un aperçu de son fonctionnement :

  1. Interface Factory : définit une méthode pour créer des objets.
  2. Classes concrètes : implémentent l’interface Factory pour créer des objets spécifiques.
  3. Client : utilise l’interface Factory pour obtenir des objets sans connaître les détails de leur création.

Implémentation du design pattern Factory

Voici un exemple concret d’implémentation du design pattern Factory en JavaScript :

// Interface Factory
class ButtonFactory {
  createButton(type) {
    switch (type) {
      case 'windows':
        return new WindowsButton();
      case 'html':
        return new HTMLButton();
      default:
        throw new Error('Type de bouton inconnu');
    }
  }
}

// Classes concrètes
class WindowsButton {
  render() {
    return 'Rendu d\'un bouton Windows';
  }
}

class HTMLButton {
  render() {
    return 'Rendu d\'un bouton HTML';
  }
}

// Client
const factory = new ButtonFactory();
const windowsButton = factory.createButton('windows');
const htmlButton = factory.createButton('html');

console.log(windowsButton.render()); // Output: Rendu d'un bouton Windows
console.log(htmlButton.render()); // Output: Rendu d'un bouton HTML

Cas d’utilisation concret

Imaginons que vous développez une application de gestion logistique qui doit prendre en charge différents types de transport (camion, bateau). Vous pouvez utiliser le design pattern Factory pour créer des objets de transport en fonction du type de transport :

// Interface Factory
class TransportFactory {
  createTransport(type) {
    switch (type) {
      case 'camion':
        return new Camion();
      case 'bateau':
        return new Bateau();
      default:
        throw new Error('Type de transport inconnu');
    }
  }
}

// Classes concrètes
class Camion {
  livrer() {
    return 'Livraison par camion';
  }
}

class Bateau {
  livrer() {
    return 'Livraison par bateau';
  }
}

// Client
const factory = new TransportFactory();
const camion = factory.createTransport('camion');
const bateau = factory.createTransport('bateau');

console.log(camion.livrer()); // Output: Livraison par camion
console.log(bateau.livrer()); // Output: Livraison par bateau

Conclusion

Le design pattern Factory est un outil puissant pour simplifier la création d’objets dans une application. Il encapsule la logique de création, rend le code plus flexible et facile à maintenir. En utilisant ce pattern, vous pouvez améliorer la qualité de votre code et réduire les risques d’erreurs.

Si vous cherchez à améliorer la conception de votre application ou à simplifier la gestion des objets, le design pattern Factory est une solution à considérer. Pour plus d’informations ou pour discuter de vos besoins en développement, n’hésitez pas à contacter notre équipe d’experts.

Share this article

You Might Also Like

Le design pattern Singleton : garantir l'unicité d'une instance

Découvrez comment le design pattern Singleton peut garantir l'unicité d'une instance dans une application.