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.