Junior — Middle
Објасните принцип рада и сврху шаблона 'фабрика' у објектно оријентисаном програмирању.
sobes.tech АИ
Одговор од АИ
Шаблон «Фабрика» (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(); // Исписује "Гав"
Овај приступ олакшава додавање нових типова објеката без измена у клиентском коду.