Middle
110
questionbank
Приведи пример реализации паттерна проектирования 'строитель' на языке C#.
Answer from AI
sobes.tech AI
// Класс продукта, который мы будем строить.
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}");
}
}
// Абстрактный класс строителя.
public abstract class Builder
{
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract void BuildPartC();
public abstract Product GetResult();
}
// Конкретный строитель для определенного типа продукта.
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;
}
}
// Класс-посредник (директор), который управляет процессом строительства.
public class Director
{
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
builder.BuildPartC();
}
}
// Клиент, использующий строителя.
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();
}
}