Порт репозитория объявляют на стороне потребителя — обычно в application или domain-слое. Инфраструктурный адаптер реализует этот контракт и зависит от внутреннего слоя, а не наоборот.
Где следует объявить интерфейс (порт) репозитория: в логическом/application-слое или в инфраструктурном?
Порт репозитория объявляют на стороне потребителя — обычно в application или domain-слое. Инфраструктурный адаптер реализует этот контракт и зависит от внутреннего слоя, а не наоборот.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Порт репозитория объявляют на стороне потребителя — обычно в application или domain-слое. Инфраструктурный адаптер реализует этот контракт и зависит от внутреннего слоя, а не наоборот.
Интерфейс выражает нужные бизнес-операции, а не детали ORM или SQL-драйвера. Конкретную реализацию связывают с use case в composition root через DI. Это позволяет тестировать логику без реальной БД и заменять механизм хранения, не протаскивая инфраструктурные типы в доменную модель.