Sobes.tech
Junior — Middle

Kāda ir Factory dizaina šablona loma un kādos gadījumos to izmanto?

sobes.tech AI

Atbilde no AI

Шаблон проектирования Factory (фабрика) используется для создания объектов без необходимости явно указывать конкретный класс создаваемого объекта. Он инкапсулирует логику создания объектов, позволяя клиентскому коду работать с абстракциями, а не с конкретными реализациями.

Основные случаи использования:

  • Когда нужно создавать объекты из семейства классов, которые реализуют общий интерфейс.
  • Когда создание объекта сложное или требует дополнительной логики.
  • Для упрощения поддержки и расширения кода, позволяя добавлять новые типы объектов без изменения клиентского кода.

Пример на C#:

public interface IShape {
    void Draw();
}

public class Circle : IShape {
    public void Draw() => Console.WriteLine("Drawing Circle");
}

public class Square : IShape {
    public void Draw() => Console.WriteLine("Drawing Square");
}

public class ShapeFactory {
    public IShape GetShape(string shapeType) {
        return shapeType.ToLower() switch {
            "circle" => new Circle(),
            "square" => new Square(),
            _ => null
        };
    }
}

// Использование
var factory = new ShapeFactory();
IShape shape = factory.GetShape("circle");
shape.Draw();

Таким образом, Factory упрощает создание объектов и повышает гибкость архитектуры.