Re[3]: DDD: фильтр по временной таблице в Репозиториях
От: Буравчик Россия  
Дата: 11.06.24 07:07
Оценка:
Здравствуйте, zelenprog, Вы писали:

Z>Ты предлагаешь сделать один Репозиторий для всех Сущностей.

Z>Я читал, что это неправильно. Для каждой сущности должен быть свой репозиторий.
Z>У меня есть сущности "Товар", "Аналог", "Упаковка". Соответственно должно быть три Репозитория.

Почему должны? Где ты такое читал?

Z>Кроме того, этот подход по меньшей мере необычный.

Z>Например, выполнив метод "TovarRepository.GetListWithAnalogAndPack" я получу три списка-коллекции?

Получишь ровно то, что напишешь в реализации метода.

Обычно возвращают то, что нужно домену. Например один список объектов, из которого можно получить и товары, и аналоги и т.п. Ну или три списка, если так нужно

Z>Обычно метод Репозитория возвращает одну коллекцию.


Репозитории существуют ДЛЯ домена. Могут возвращать хоть одну коллекцию, хоть десять. Лишь бы домену было удобно, и домен не знал детали реализации.

Можешь создать отдельный репозиторий — Tovaroiskatel (не надо такой нейминг), который будет возвращать одну коллекцию.

Z>Как минимум у меня должно быть два запроса: нужно получить список аналогов и список упаковок.

Z>Хотя, в принципе я не против сделать это одним запросом.
Z>Только как это "вписать" в Domain-Model?

Я выше уже сказал. Завернуть один-два-десять запросов в БД в один метод репозитория.

Z>Используется Репозиторий как обычный класс.

Z>Хотя по сути он не имеет состояния.
Z>То есть чисто теоретически, если его использовать не как обычный класс, а как синглтон, то никакой разницы не будет.

Состояние он имеет — как минимум, настройки для подключения к БД, ссылки на зависимости.
Плюс может добавиться еще состояние, про которое домену знать не нужно, а в реализации репозитория может быть полезно.
Ну и прочие недостатки синглтона
Best regards, Буравчик
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.