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