2009-03-10 4 views
1

Итак, у меня есть хранилище для каждого объекта, но у моей модели есть реляционное деление, где сущности не связаны непосредственно в модели. Так что мне нужно сделать запрос от этой косвенной связи и вернуть коллекцию сущностей. Уместно ли инициализировать и вызывать запросы в другом репозитории из того, с которым вы действительно запрашиваете? Если нет, то какое лучшее решение для этого - вспомогательный класс?Вопрос о шаблоне хранилища - приемлемо ли использовать репо внутри другого хранилища?

Благодаря

ответ

6

Я согласен - попытайтесь определить Совокупные корни. Если вы не знакомы с корнями aggreagate: read here

Ваш первоначальный вопрос по-прежнему остается на мой взгляд, хотя у вас могут быть зависимости от других репозиториев. В зависимости от вашей модели домена может быть хорошо иметь эти зависимости. Если у вас есть зависимости вроде этого, это хороший дизайн, чтобы свободно связывать их с интерфейсами. Затем вы можете использовать некоторую инъекцию зависимостей, чтобы упростить тестирование и т. Д. Другой вариант заключается в том, чтобы фабрика предоставила вам правильный репозиторий.

2

хранилище для каждого объекта, вероятно, не является хорошей идеей. Хранилища должны существовать для совокупных корневых объектов. Определите свои агрегированные корневые объекты и репозитории поставщиков для них. Это может устранить некоторые проблемы, связанные с репозиториями, зависящими от других репозиториев.