Builder
Contexte : Séparer la construction d’un objet complexe de sa représentation afin que le même processus de construction puisse créer différentes représentations.
public class Product{ public string PartA { get; set; } public string PartB { get; set; }}
public interface IBuilder{ void BuildPartA(); void BuildPartB(); Product GetResult();}
public class ConcreteBuilder : IBuilder{ private Product _product = new(); public void BuildPartA() => _product.PartA = "A"; public void BuildPartB() => _product.PartB = "B"; public Product GetResult() => _product;}
public class Director{ public void Construct(IBuilder builder) { builder.BuildPartA(); builder.BuildPartB(); }}
// Usagevar builder = new ConcreteBuilder();new Director().Construct(builder);Product p = builder.GetResult();Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Construction de requêtes SQL : Un SqlQueryBuilder permet une construction étape par étape des clauses SELECT, WHERE, ORDER BY, produisant différentes chaînes de requête.
Exemple : En C#, StringBuilder est un constructeur classique pour construire efficacement des chaînes. Le IQueryable d’Entity Framework Core utilise des méthodes fluides comme .Where(), .OrderBy(), .Select() pour construire des requêtes.