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