Нередко можно видеть интерфейсы репозитория, размещенные в той же сборке, что и сами доменные объекты.Это то, что Джеффри Палермо обсуждает в своей серии о Луковой архитектуре .Лично я делаю то же самое.
Что касается причин этого, я считаю, что совершенно логично определить, что репозиторий делает по отношению к объектам домена.На мой взгляд, рассмотрение поведения хранилища так же тяжело, как и самого домена.Предположим, что у вас есть одна команда или разработчик, который работает над моделью домена и определяет интерфейсы репозитория после работы с экспертом по домену.Их / его / ее роль заключается в том, чтобы обеспечить передачу знаний о том, как домен связан с репозиториями, но не обязательно с самими репозиториями.
При этом передача этой сборки кому-либоостальное в команде, UoK (единица знаний, мой собственный термин) ограничена сборкой.Люди, пишущие реализацию репозиториев, будут затем кодировать переданные знания в сборке.Поскольку этот UoK не меняется в зависимости от того, как реализован репозиторий, с точки зрения доступа к данным он логически переходит в другую сборку.