Middle
C# тилинде 'Куруучу' дизайн үлгүсүнүн ишке ашырылышынын мисалын келтириңиз.
sobes.tech AI
AIден жооп
"Курулушчу" үлгүсү татаал объекттин курулуш процесин анын көрсөтмөсүнөн бөлүп турат, ошондуктан бир эле курулуш процеси ар кандай көрсөтмөлөрдү түзө алат. Бул объект түзүү көптөгөн кадамдар жана конфигурациялар талап кылынганда колдонулат.
// Абстракттуу курулушчу объекттин бөлүктөрүн түзүү үчүн интерфейсди жарыялайт.
public abstract class Builder
{
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract Product GetResult();
}
// Конкреттүү курулушчу Builder интерфейсин ишке ашырып,
// жана продукттун бөлүктөрүн түзүп жана чогултат.
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;
}
}
// Продукт түзүлүшү керек болгон татаал объектти көрсөтөт.
public class Product
{
private List<string> _parts = new List<string>();
public void Add(string part)
{
_parts.Add(part);
}
public void ListParts()
{
Console.WriteLine("Продукт бөлүктөрү: " + string.Join(", ", _parts));
}
}
// Директор объектти Builder аркылуу куруу.
public class Director
{
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
}
}
// Колдонуу мисалы
public class Program
{
public static void Main(string[] args)
{
Director director = new Director();
ConcreteBuilder builder = new ConcreteBuilder(); // Конкреттүү курулушчуну түзөбүз
director.Construct(builder); // Директор куруу процесин жетекчилик кылат
Product result = builder.GetResult(); // Дайын продуктту алабыз
result.ListParts(); // Продукт бөлүктөрүн чыгарабыз
}
}
Негизги компоненттер:
- Builder: Аралык интерфейс акыркы продукттун бөлүктөрүн түзүү үчүн.
- ConcreteBuilder: Конкреттүү ишке ашыруу, продукттун бөлүктөрүн түзүп жана чогултат.
- Director: Класс, ал Builder колдонуп, объектти кадам-кадам куруу үчүн, анын конкреттүү түрүн билбестен.
- Product: Түзүлүүчү татаал объект.
Бул мисал көрсөтүп турат, кандайча Director ConcreteBuilder колдонуп, Product-ту кадам-кадам түзүп чыгат, куруу процесси менен анын көрсөтүүсүн бөлүп турат.