Sobes.tech
Back to questions
Junior — Middle
74

Объясните принцип работы и назначение паттерна 'фабрика' в объектно-ориентированном программировании.

Answer from AI

sobes.tech AI

Паттерн «Фабрика» (Factory) используется для создания объектов без указания конкретного класса создаваемого объекта. Его основное назначение — инкапсуляция логики создания объектов, что упрощает расширение и поддержку кода.

Принцип работы:

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

Пример на C#:

// Интерфейс продукта
interface IAnimal {
    void Speak();
}

// Конкретные продукты
class Dog : IAnimal {
    public void Speak() => Console.WriteLine("Гав");
}
class Cat : IAnimal {
    public void Speak() => Console.WriteLine("Мяу");
}

// Фабрика
class AnimalFactory {
    public static IAnimal CreateAnimal(string type) {
        return type switch {
            "dog" => new Dog(),
            "cat" => new Cat(),
            _ => throw new ArgumentException("Неизвестный тип животного")
        };
    }
}

// Использование
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // Выведет "Гав"

Такой подход облегчает добавление новых типов объектов без изменения клиентского кода.