Junior — Middle
Обяснете принципа на работа и предназначението на патърна 'фабрика' в обектно-ориентираното програмиране.
sobes.tech AI
Отговор от 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(); // Ще изведе "Гав"
Този подход улеснява добавянето на нови типове обекти без промяна на клиентския код.