Правильно ли мое архитектурное решение оболочки экспертных систем на C#?
Моя задача разработать приложение оболочки экспертных систем на языке C#.
Я попробовал представить архитектуру проекта в виде диаграммы пакетов в нотации UML
:
Я не придерживался какого-либо архитектурного решения и разрабатывал на основе моего небольшого опыта.
После разработки решил представить в виде схемы выше и описать архитектуру и понял, что вроде как сделал что-то не так.
Я думал изначально, что слой DOMAIN
содержит описание классов предметной области и всё.
DAL
- слой доступа к данным.
GURU-TRANSLATOR
- библиотека классов, в которой находится логика преобразования входного текста в объекты из GURU.DOMAIN
(по сути, предоставляет интерфейс лишь с одним методом на вход которому подается текст, на выход один объект определенного класса).
Слой SERVICES
- логика приложения.
То есть, там методы сервисов, например, сервис трансляции, который использует TRANSLATOR
для преобразования текста, и DAL для сохранения полученного объекта в БД.
Но потом я прочитал, что логика, по сути, должна храниться в слое DOMAIN
, и никакого слоя SERVICES
, по сути, нет ни в каком архитектурном решении.
Теперь я хотел бы исправить архитектуру, но не знаю в какую сторону копать и что сделать. Хотел бы попросить более опытных людей здесь помочь и описать, как бы вы представили архитектуру.