Sobes.tech
Junior — Middle

Ar galite paaiškinti, kas yra 'Builder' šablonas ir kokiais atvejais jis naudojamas?

sobes.tech AI

Atsakymas iš AI

Паттерн "Builder" используется для поэтапного создания сложных объектов. Он отделяет процесс конструирования объекта от его представления, позволяя создавать разные варианты объекта, используя один и тот же процесс построения.

Часто применяется, когда объект имеет много параметров, некоторые из которых необязательны, или когда нужно создавать разные конфигурации объекта.

Пример на C#:

public class Pizza
{
    public string Dough { get; set; }
    public string Sauce { get; set; }
    public string Topping { get; set; }
}

public class PizzaBuilder
{
    private Pizza _pizza = new Pizza();

    public PizzaBuilder SetDough(string dough)
    {
        _pizza.Dough = dough;
        return this;
    }

    public PizzaBuilder SetSauce(string sauce)
    {
        _pizza.Sauce = sauce;
        return this;
    }

    public PizzaBuilder SetTopping(string topping)
    {
        _pizza.Topping = topping;
        return this;
    }

    public Pizza Build()
    {
        return _pizza;
    }
}

// Использование:
var pizza = new PizzaBuilder()
    .SetDough("thin")
    .SetSauce("tomato")
    .SetTopping("cheese")
    .Build();