Контейнер или объект

Обсуждаем, как правильно строить приложения
Ответить
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Контейнер или объект

Сообщение jakiro »

Привет коллеги, надеюсь верный раздел. Интересует вопрос:
Как на ваш взгляд предпочтительнее в контроллере, иметь сервис вроде:

Код: Выделить всё

$numbers = $this->counterService->parseNumbers($form->string);
        $m->setNumbers($numbers);

        $letters = $this->counterService->parseLetters($form->string);
        $m->setLetters($letters);

        $count = $this->counterService->getCount($form->string);
        $m->setCount($count);
Строка всегда одна и такая же из формы, или можно просто создать объект парсера:

Код: Выделить всё

	$parser = new Parser($form->string);
	$numbers = $parser->parseNumbers();
        $m->setNumbers($numbers);

        $letters = $parser->parseLetters();
        $m->setLetters($letters);

        $count = $parser->getCount();
        $m->setCount($count);
Или оставить первый вариант и добавить сеттер string?
Последний раз редактировалось jakiro 2019.09.11, 14:45, всего редактировалось 1 раз.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Контейнер или объект

Сообщение samdark »

Если парсер один и расширять его не планируется и используется он в одном месте, я бы делал без дополнительных обёрток.
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Контейнер или объект

Сообщение anton_z »

Я думаю что сервис здесь не нужен. Даже если потом вдруг (скорее всего нет), потребуется внедрение Parser, вы всегда сможете сделать фабрику. и зачем строку $form->string в каждый метод Parser::parse*() передавать (второй вариант)? Она же в конструкторе передается.
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Контейнер или объект

Сообщение jakiro »

anton_z писал(а): 2019.09.11, 02:10 Я думаю что сервис здесь не нужен. Даже если потом вдруг (скорее всего нет), потребуется внедрение Parser, вы всегда сможете сделать фабрику. и зачем строку $form->string в каждый метод Parser::parse*() передавать (второй вариант)? Она же в конструкторе передается.
Да вы правы, это была моя опечатка :) Спасибо.
Ответить