Скажем, у нас есть две совокупные корни в модели домена: группа и пользователь.
Теперь пользователи могут быть добавлены или удалены из групп. Используя шаблон репозитория, я только смоделировал следующие два интерфейса:
interface IGroupRepository
{
Group FindById(int groupId);
}
interface IUserRepository
{
User FindById(int userId);
IQueryable<User> GetGroupMembers(int groupId);
void AddUserToGroup(User user, Group group);
void RemoveUserFromGroup(User user, Group group);
}
Почему-то это не так. Я хочу создать чистую модель предметной области, а не просто слой доступа к данным. Что было бы лучшим способом для моделирования выше?
РЕДАКТИРОВАТЬ: Кажется, что основной вопрос здесь заключается в том, можно ли с рекомендациями DDD рассматривать пользователя как «подобъект», в то время как в то же время он также является совокупным корнем? Как я понял, DDD утверждает, что совокупные корни должны извлекаться и храниться только из одного места (хранилища), поэтому я немного запутался.