Middle
Provide an example of implementing the 'Builder' design pattern in C#.
sobes.tech AI
Answer from AI
// Class of the product we will build.
public class Product
{
public string PartA { get; set; }
public string PartB { get; set; }
public string PartC { get; set; }
public void Display()
{
Console.WriteLine($"Product parts: {PartA}, {PartB}, {PartC}");
}
}
// Abstract builder class.
public abstract class Builder
{
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract void BuildPartC();
public abstract Product GetResult();
}
// Concrete builder for a specific product type.
public class ConcreteBuilder : Builder
{
private Product _product = new Product();
public override void BuildPartA()
{
_product.PartA = "Part A Built";
}
public override void BuildPartB()
{
_product.PartB = "Part B Built";
}
public override void BuildPartC()
{
_product.PartC = "Part C Built";
}
public override Product GetResult()
{
return _product;
}
}
// Director class that manages the construction process.
public class Director
{
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
builder.BuildPartC();
}
}
// Client using the builder.
public class Client
{
public static void Main(string[] args)
{
Director director = new Director();
Builder builder = new ConcreteBuilder();
director.Construct(builder);
Product product = builder.GetResult();
product.Display();
}
}