Где находится класс реализации шаблона Factory в чистой архитектуре для DDD? - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь следовать чистой архитектуре с DDD, используя решение, имеющее следующие три типа проектов:

  • MyProject.Core (объекты, интерфейсы и службы)
  • MyProject.Infrastructure (репозитории, события, журналы, фабрики ???)
  • MyProject.API (контроллеры)

У меня есть фабричный класс MapperFactory, который реализует интерфейс IMapperFactory который возвращает IMapperService на основе MapType, переданного на завод. Реализации IMapperService находятся на уровне Core.

Я пытаюсь понять, где должны находиться классы реализации Factory. Все мои репозитории реализованы в инфраструктурном проекте, но доменные службы реализованы в базовом проекте в соответствии с рекомендациями по чистой архитектуре (по крайней мере, как я их читаю)

Мне кажется, что реализация для фабрики должна быть в основном проектепотому что там находятся все реализации, которые нужно создать, но не уверены. Если это должно быть в основном проекте, каким типом объекта это будет, поскольку это не сущность, служба или интерфейс?

1 Ответ

0 голосов
/ 11 октября 2019

Какова цель MapperFactory?

Если ваш MapperFactory отображает объект базы данных в (и из) объект домена, то они должны перейти в проект Infrastructure (так как ваши реализации репозитория находятся там).

Если ваш преобразователь отображает объект домена в (и из) модель представления, тогда они находятся в проекте API.

Если ваша модель находится в Core службах, например, вы не хотите открывать свои домены для внешнего мира, и у вас есть Contracts в службах для связи с внешним миром, тогда ваш MapperFactory должен находитьсявнутри Core (при условии, что MapperFactory отобразит домены в (и из) Contracts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...