Le modèle de conception Factory (ou modèle de fabrique) est un modèle de création qui fournit une interface pour créer des instances d'une classe, tout en permettant aux sous-classes de modifier le type d'instances qui seront créées. Il appartient à la catégorie des modèles de création, et son objectif principal est de déléguer la responsabilité de l'instanciation des objets à des classes spécifiques, plutôt que de les créer directement dans le code client.
Caractéristiques clés du modèle de conception Factory :
1. Interface commune : Définit une interface commune pour créer des objets, mais laisse les sous-classes décider quels objets créer.
2. Délégation : Délègue la responsabilité de l'instanciation des objets à des sous-classes ou à des méthodes spécifiques.
3. Couplage réduit : Réduit le couplage entre le code client et les classes concrètes, facilitant ainsi l'extension du système avec de nouvelles classes.
Voici un exemple simple en pseudo-code :
interface IProduct:
method Operation()
class ConcreteProductA implements IProduct:
method Operation():
// Implémentation spécifique de ConcreteProductA
class ConcreteProductB implements IProduct:
method Operation():
// Implémentation spécifique de ConcreteProductB
class Creator:
method FactoryMethod() returns IProduct:
// Méthode de fabrique définie dans la classe Creator
// Chaque sous-classe de Creator peut implémenter cette méthode pour créer différents produits.
class ConcreteCreatorA extends Creator:
method FactoryMethod() returns IProduct:
return new ConcreteProductA()
class ConcreteCreatorB extends Creator:
method FactoryMethod() returns IProduct:
return new ConcreteProductB()
Dans cet exemple, `Creator` est la classe qui a la méthode de fabrique (`FactoryMethod`). Les sous-classes comme `ConcreteCreatorA` et `ConcreteCreatorB` implémentent cette méthode pour créer différentes instances de produits (`ConcreteProductA` et `ConcreteProductB` dans cet exemple). Cela permet une flexibilité dans le choix des objets à créer sans modifier le code client.
Aucun commentaire:
Enregistrer un commentaire