Sobes.tech
Middle

C# dilində 'Tikəçi' dizayn nümunəsinin tətbiqi nümunəsini göstərin.

sobes.tech Süni İntellekt

AI-dan cavab

"Tikintiçi" nümunəsi mürəkkəb obyektin qurulma prosesini onun təqdimatından ayırır ki, eyni qurma prosesi müxtəlif təqdimatlar yarada bilsin. Bu, obyektin yaradılması çoxsaylı mərhələlər və konfiqurasiyalar tələb etdikdə tətbiq olunur.

// Abstrakt tikintiçi obyektin hissələrini yaratmaq üçün interfeysi elan edir.
public abstract class Builder
{
    public abstract void BuildPartA();
    public abstract void BuildPartB();
    public abstract Product GetResult();
}

// Konkret tikintiçi Builder interfeysini həyata keçirir
// və obyektin hissələrini qurur və yığır.
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;
    }
}

// Məhsul, inşa ediləcək mürəkkəb obyekti təmsil edir.
public class Product
{
    private List<string> _parts = new List<string>();

    public void Add(string part)
    {
        _parts.Add(part);
    }

    public void ListParts()
    {
        Console.WriteLine("Məhsul hissələri: " + string.Join(", ", _parts));
    }
}

// Direktor, Builder interfeysindən istifadə edərək obyekti qurur.
public class Director
{
    public void Construct(Builder builder)
    {
        builder.BuildPartA();
        builder.BuildPartB();
    }
}

// İstifadə nümunəsi
public class Program
{
    public static void Main(string[] args)
    {
        Director director = new Director();
        ConcreteBuilder builder = new ConcreteBuilder(); // Konkret tikintiçi yaradılır

        director.Construct(builder); // Direktor inşa prosesini idarə edir

        Product result = builder.GetResult(); // Tamamlanmış məhsulu alırıq
        result.ListParts(); // Məhsul hissələrini göstəririk
    }
}

Əsas komponentlər:

  • Builder: Son məhsulun hissələrini yaratmaq üçün abstrakt interfeys.
  • ConcreteBuilder: Məhsulun hissələrini inşa edən və yığan konkret tətbiq.
  • Director: Objekti mərhələli şəkildə inşa etmək üçün Builder-dən istifadə edən sinf, onun konkret növünü bilmədən.
  • Product: İnşa olunan mürəkkəb obyekt.

Bu nümunə göstərir ki, Director ConcreteBuilder istifadə edərək Product-u mərhələli şəkildə necə yaradır, inşa prosesini onun təqdimatından ayırır.