Junior — Middle
Каква е основната функция на патърна Factory в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от AI
Шаблонът Factory в обектно-ориентираното програмиране е предназначен за създаване на обекти без необходимостта директно да се посочва конкретният клас на създавания обект. Основната му функция е да капсулира логиката за създаване на обекти, което позволява:
- да се премахне твърдата зависимост на кода от конкретни класове,
- да се улесни разширяването и поддръжката на кода (например добавяне на нови типове обекти),
- да се централизира създаването на обекти, което подобрява четливостта и управляемостта.
Прост пример за Factory на Java:
interface Animal {
void speak();
}
class Dog implements Animal {
public void speak() { System.out.println("Woof"); }
}
class Cat implements Animal {
public void speak() { System.out.println("Meow"); }
}
class AnimalFactory {
public static Animal createAnimal(String type) {
if ("dog".equalsIgnoreCase(type)) return new Dog();
else if ("cat".equalsIgnoreCase(type)) return new Cat();
else throw new IllegalArgumentException("Unknown animal type");
}
}
// Използване:
Animal animal = AnimalFactory.createAnimal("dog");
animal.speak(); // Ще изведе: Woof