Aller au contenu

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();
}
}
// Usage
var builder = new ConcreteBuilder();
new Director().Construct(builder);
Product p = builder.GetResult();

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.