Я не одобряю вашу текущую архитектуру.Конечно, разбиение вашего приложения на логические или физические уровни зависит от потребностей и сложности вашего проекта.но было бы лучше избавиться от текущей реализации и применить новую архитектуру как таковую:
- Модель домена : состоит из сущностей вашего домена, интерфейсов для ваших репозиториеви т. д.
- Репозиторий : реализует контракты репозитория, определенные в модели предметной области, возможны разные реализации репозиториев.
- AppService : состоит
View Models
, Messages
, Application Services
и т. д.это будет точка входа для пользователей во всю систему. - Presentation : будет реализован шаблон представления, подобный шаблону
MVP
или MVC
.
Это будет общая архитектура для многоуровневых приложений.попытаться программировать против интерфейсов, а не конкретных реализаций.Кроме того, чем больше вы абстрагируете свои бизнес-компоненты (уровни приложений) и чем больше вы используете преимущества использования Design Patterns
и передового опыта, тем больше вы будете делать, чтобы ваша кодовая база была более масштабируемой, слабо связанной и лучше обслуживаемой.
Если вы разрабатываете продукт, а не просто пример приложения для себя, я бы посоветовал углубиться в Domain-Driven Design
, Enterprise Application Architectures
и Design Patterns
, чтобы иметь возможность лучше моделировать потребности вашего бизнеса иреализовать лучшую и более надежную архитектуру.
Буду рада рассказать об этом подробнее, если вам потребуется дополнительная информация или конкретные вопросы [: