Builder: нужна ли фабрика, или можно в билдере оставить метод?
У меня есть некий класс Logger, который достаточно сложно инстанцировать, чтобы упростить работу,
я создал обычный билдер, который помогает быстро конфигурировать и создавать объект логгера.
Но в приложении достаточно часто где может встречаться один и тот же код билдера.
Например:
$logger_builder = new LoggerBuilder('logger_name');
$logger = $logger_builder->setLogLevel(Logger::ERROR)->setChannel(Logger::DEFAUL_CHANNEL)->setFormat('...');
Чтобы каждый раз эту лапу не писать, хочу этот код обернуть в метод и его уже использовать.
Куда лучше с точки зрения структуры положить этот метод?
Нужно ли создавать отдельную фабрику (мне кажется это лишнее.. ?)?
Или можно положить в сам билдер (мне кажется это не его зона ответственности)?
1) создать класс-обертку для этого логгера, сконфигурировать его внутри (в методе init, метод init засунуть в конструктор)
2) изучить реализацию service container в текущем фреймворке/приложении и передавать уже сконфигурированный логгер через dependency injection в нужные классы