.net Core Factory Pattern Example

4 min read Jun 03, 2024
.net Core Factory Pattern Example

Le modèle d'usine dans .NET Core : Un exemple pratique

Le modèle d'usine est un patron de conception créatif qui permet de découpler la création d'objets de leur utilisation. En .NET Core, ce modèle est particulièrement utile pour simplifier la gestion des dépendances et améliorer la testabilité de votre code.

Le concept de base

Le modèle d'usine repose sur une classe "usine" (Factory) qui est responsable de la création d'instances d'objets, en fonction de certains paramètres ou conditions. Au lieu d'instancier directement les objets, vous utilisez l'usine pour les obtenir.

Un exemple concret

Imaginons que nous ayons une application qui gère différents types de véhicules. Nous avons des voitures, des motos et des camions, chacun ayant ses propres attributs et méthodes spécifiques.

// Interface commune pour tous les véhicules
public interface IVehicule 
{
    void Rouler();
}

// Classe Voiture
public class Voiture : IVehicule
{
    public void Rouler() 
    {
        Console.WriteLine("La voiture roule sur la route.");
    }
}

// Classe Moto
public class Moto : IVehicule
{
    public void Rouler()
    {
        Console.WriteLine("La moto vrombit sur la route.");
    }
}

// Classe Camion
public class Camion : IVehicule
{
    public void Rouler() 
    {
        Console.WriteLine("Le camion transporte sa charge.");
    }
}

// Classe Factory pour créer des véhicules
public class VehiculeFactory
{
    public IVehicule CreerVehicule(string type)
    {
        switch (type)
        {
            case "voiture":
                return new Voiture();
            case "moto":
                return new Moto();
            case "camion":
                return new Camion();
            default:
                throw new ArgumentException("Type de véhicule invalide.");
        }
    }
}

Dans cet exemple, la classe VehiculeFactory agit comme une usine. Elle a une méthode CreerVehicule qui prend un argument de type de véhicule (voiture, moto, camion). En fonction de l'argument, l'usine retourne l'instance du véhicule correspondant.

Utilisation de l'usine

// Utilisation de l'usine pour créer un véhicule
VehiculeFactory factory = new VehiculeFactory();
IVehicule voiture = factory.CreerVehicule("voiture");
IVehicule moto = factory.CreerVehicule("moto");
IVehicule camion = factory.CreerVehicule("camion");

// Appeler des méthodes sur les véhicules
voiture.Rouler();
moto.Rouler();
camion.Rouler();

Avantages du modèle d'usine

  • Découplage: L'usine sépare la création d'objets de leur utilisation, ce qui rend le code plus flexible et adaptable.
  • Réduite complexité: L'usine centralise la création d'objets, ce qui simplifie le code et le rend plus facile à maintenir.
  • Amélioration de la testabilité: Il est plus facile de tester le code en remplaçant l'usine par une version factice (mock) pendant les tests unitaires.

En résumé

Le modèle d'usine est un outil puissant dans .NET Core qui permet de simplifier la création d'objets et d'améliorer la flexibilité et la testabilité de votre code. En utilisant une classe d'usine, vous pouvez centraliser la création d'objets et les découpler de leur utilisation, ce qui rend votre code plus maintenable et plus adaptable aux changements futurs.

Related Post