@Danil_Putro

Будет ли считаться правильно, если я размещу интерфейс репозитория в выходных портах в контексте чистой архитектуры?

Встречаю код, где часто вижу расположение интерфейса репозитория в слое domain рядом с сущностью. Есть ли принципиальная разница, если интерфейс разместить в выходном порте, а не в domain?
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
AshBlade
@AshBlade
Просто хочу быть счастливым
По идее, репозиторий - это абстракция над хранилищем твоих сущностей, он должен быть простой прослойкой для запросов в БД. Он должен быть в доменном слое, чтобы ты мог получать доступ к сущностям и выполнять доменные операции, например, заказ товара - нужен репозиторий, чтобы обновить сущность заказа.

В контроллеры его могут класть для простоты. Например, есть GET запрос - не зачем тебе создавать отдельные юз. кейсы и т.д. - просто вызови нужный метод у интерфейса репозитория.

Если размещать интерфейс репозитория в прикладном слое, то тут 2 варианта:
1. У тебя богатые сущности, которые могут выполнять все действия без необходимости доп. запросов. Это похоже на DDD с их агрегатами.
2. Все смешалось в кучу и доменка вызывает прикладной слой

Скорее всего, идея такого проекта следующая - доменный слой имеется только сущности и все операции не требуют других зависимостей, а прикладной слой уже кое-как говорит с внешним миром и реализует бизнес операции.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы