Middle
Geef een voorbeeld van de implementatie van het ontwerp patroon 'Bouwer' in C#.
sobes.tech AI
Antwoord van AI
Het "Builder"-patroon scheidt het proces van het bouwen van een complex object van zijn voorstelling, zodat hetzelfde bouwproces verschillende representaties kan creëren. Het wordt toegepast wanneer het maken van een object meerdere stappen en configuraties vereist.
// De abstracte bouwer declareert de interface voor het maken van delen van het object.
public abstract class Builder
{
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract Product GetResult();
}
// De concrete bouwer implementeert de Builder-interface
// en bouwt en assembleert de delen van het product.
public class ConcreteBuilder : Builder
{
private Product _product = new Product();
public override void BuildPartA()
{
_product.Add("PartA");
}
public override void BuildPartB()
{
_product.Add("PartB");
}
public override Product GetResult()
{
return _product;
}
}
// Het product vertegenwoordigt een complex object dat gebouwd moet worden.
public class Product
{
private List<string> _parts = new List<string>();
public void Add(string part)
{
_parts.Add(part);
}
public void ListParts()
{
Console.WriteLine("Productonderdelen: " + string.Join(", ", _parts));
}
}
// De directeur bouwt het object met behulp van de Builder-interface.
public class Director
{
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
}
}
// Voorbeeld van gebruik
public class Program
{
public static void Main(string[] args)
{
Director director = new Director();
ConcreteBuilder builder = new ConcreteBuilder(); // Creëer een concrete bouwer
director.Construct(builder); // De directeur leidt het bouwproces
Product result = builder.GetResult(); // Krijg het voltooide product
result.ListParts(); // Toon de onderdelen van het product
}
}
Belangrijkste componenten:
- Builder: Abstracte interface voor het maken van delen van het uiteindelijke product.
- ConcreteBuilder: Concrete implementatie van Builder, die de delen van het product bouwt en samenvoegt.
- Director: Klasse die Builder gebruikt om het object stapsgewijs te construeren, zonder het concrete type te kennen.
- Product: Het complexe object dat wordt gebouwd.
Dit voorbeeld toont hoe Director ConcreteBuilder gebruikt om Product stap voor stap te maken, waarbij het bouwproces wordt gescheiden van de voorstelling.