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

Паттерн «Фабрика» (Factory) используется для создания объектов без указания конкретного класса создаваемого объекта.

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

Паттерн «Фабрика» (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(); // Выведет "Гав"

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее