Factory Method
Contexte : Définir une interface pour créer un objet, mais laisser les sous‑classes décider quelle classe instancier. Factory Method permet à une classe de différer l’instanciation à ses sous‑classes.
public interface IProduct{ void Operation();}
public class ConcreteProductA : IProduct{ public void Operation() => Console.WriteLine("Product A");}
public abstract class Creator{ public abstract IProduct FactoryMethod();}
public class ConcreteCreatorA : Creator{ public override IProduct FactoryMethod() => new ConcreteProductA();}
// UsageCreator creator = new ConcreteCreatorA();IProduct product = creator.FactoryMethod();product.Operation();Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Frameworks de journalisation : Différents enregistreurs (fichier, base de données, cloud) sont créés par des méthodes de fabrique correspondantes. Le code applicatif ne connaît que l’interface ILogger ; l’enregistreur concret est décidé par la configuration ou l’environnement.
Exemple : Dans ASP.NET Core, ILoggerFactory utilise le pattern Factory Method pour créer des instances de journalisation pour différentes catégories. La méthode CreateLogger est une méthode de fabrique qui retourne un ILogger pour un nom de catégorie donné.