Я бы сказал, что ApplicationService - это подходящее место для логики синтаксического анализа, хотя было бы неплохо поместить его в службу DirectoryWatcher.
Мое обоснование этого утверждения исходит изТочка зрения принципа единой ответственности: в частности, DirectoryWatcher не должен отвечать за управление всеми различными форматами входных файлов.Он должен просто взять то, что он получил, и передать его в нужное место (это уже очень сложная обязанность).
Когда моя голова немного повернулась (что, может быть, так же, как и вы?), Было ли этона самом деле не является обязанностью ApplicationService, который координирует ваши различные доменные объекты.Тем не менее, я чувствую, что ApplicationService - это подходящее место для использования своего рода шаблона Builder, абстрагируясь от деталей каждого метода синтаксического анализа каждого файла, а также создавая ясное место в Домене, где этот анализ координируется.
Что касается каждого формата файла, являющегося частью домена или нет.Я бы сказал, что они - вы можете себе представить, что все они выражаются как часть вездесущего языка, когда различные эксперты в области обсуждают причуды x-формата или y-формата и выраженные данные.Подобный анализ и отображение очень похожи на логику домена первого класса.
Еще одна приятная сторона вашего оригинального дизайна - я думаю, что это упростит добавление новых источников и форматов входных файлов и изменение существующих.Вы отсоединили источник файла от определенного формата и создали красивую интерфейсную точку (ApplicationService), где ваши новые провайдеры файлов получают доступ к основным приложениям.