saroff
@saroff
Enterprise Java Developer

Как правильнее будет разделить этапы парсинга команд вводимых с консоли?

Есть два класса - парсер и контроллер. Схема думаю всем понятна - парсер разбирает строку и в зависимости от этого говорит контроллеру что делать. Но проблема вот в чем - у контроллера есть некоторое кол-во разных методов, скажем method1, method2 и тд. И собственно вопрос - на каком этапе будет правильнее определить, какой из методов вызывать? Если полностью доверить эту работу парсеру, то нам придется создавать столько же правил, сколько у нас методов. Или же доверить эту работу контроллеру и передавать ему строковое название метода, в таком случае нам придется организовать огромный свитч, но код в целом получится короче. Как поступить?
  • Вопрос задан
  • 2485 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
по хорошоему контроллер должен решать что делать на основании того, что говорит ему парсер, и делегировать работу воркерам а не делать ее самостоятельно. И да, парсер не должен знать ничего о том, как будет обрабатываться то или иное состояние.
Ответ написан
@Calc
Парсер должен вернуть "нужную" контроллеру структуру данных, а вот контроллер может принять решение что делать.
Посмотрите в сторону паттерна "состояние" (State), если не нравится большой switch
ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%81%D1%82%D0%...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы