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(); // Выведет "Гав"
Такой подход облегчает добавление новых типов объектов без изменения клиентского кода.