Назад к вопросам
Junior — Middle
98
К какой группе принадлежит паттерн 'Фабрика' в контексте проектирования программных систем?
Ответ от нейросети
sobes.tech AI
Паттерн "Фабрика" (Factory) относится к группе порождающих (creational) паттернов проектирования. Его основная задача — создавать объекты, скрывая логику их создания и позволяя клиентскому коду работать с абстракциями, а не с конкретными классами.
Например, в PHP можно использовать фабрику для создания разных типов объектов в зависимости от параметров:
interface Logger {
public function log(string $message);
}
class FileLogger implements Logger {
public function log(string $message) {
// Запись в файл
}
}
class DatabaseLogger implements Logger {
public function log(string $message) {
// Запись в базу данных
}
}
class LoggerFactory {
public static function create(string $type): Logger {
if ($type === 'file') {
return new FileLogger();
} elseif ($type === 'database') {
return new DatabaseLogger();
}
throw new Exception("Unknown logger type");
}
}
$logger = LoggerFactory::create('file');
$logger->log('Сообщение');
Таким образом, фабрика инкапсулирует создание объектов и упрощает расширяемость и поддержку кода.