vendredi 22 novembre 2024

Factory

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