Назад к вопросам
Junior — Middle
90
Какова основная задача паттерна 'Фабрика' в объектно-ориентированном программировании?
Ответ от нейросети
sobes.tech AI
Паттерн «Фабрика» (Factory) в объектно-ориентированном программировании предназначен для создания объектов без указания конкретного класса создаваемого объекта. Его основная задача — инкапсулировать логику создания объектов, позволяя клиентскому коду работать с абстракциями, а не с конкретными реализациями. Это облегчает расширение и поддержку кода, так как при добавлении новых типов объектов не нужно менять клиентский код, достаточно расширить фабрику.
Пример на PHP:
interface Product {
public function getName();
}
class ConcreteProductA implements Product {
public function getName() {
return "Product A";
}
}
class ConcreteProductB implements Product {
public function getName() {
return "Product B";
}
}
class Factory {
public static function createProduct(string $type): Product {
if ($type === 'A') {
return new ConcreteProductA();
} elseif ($type === 'B') {
return new ConcreteProductB();
}
throw new Exception("Unknown product type");
}
}
// Использование
$product = Factory::createProduct('A');
echo $product->getName(); // Product A