red_gorilla
@red_gorilla

DDD, aggregate root, entity, repository?

В книге Эванса написано что "repositories" должны возвращать только "aggregate root". А как тогда быть с обычными entities. Простой пример: есть класс City по определению это entity у него есть id и name его не уникален, как его получать, добавлять, изменять в "парадигме" DDD ? Получается что для каждой сущности нужен свой репозиторий а не только для корней агрегации?

Для примера кусок простого интернет магазина, получается и для tag и для region свои репозитории? потому что то как то надо их создавать, изменять итд.

public class Tag {
  private string _name ;
}

public class Region {
  private string _name 
}

public class City {
  private Guid _id;
  private string _name 
private Region _region;
}

public class User {
  private Guid _id;
  private City _city; 

   // всякие методы
}
public class Product {
  private Guid _id;
  private City[] _cities; 
  private Tag[] _tags;
  
   // всякие методы
}
  • Вопрос задан
  • 3188 просмотров
Пригласить эксперта
Ответы на вопрос 2
dmitriylanets
@dmitriylanets
веб-разработчик
Использую для каждой сущности свой репозитоий так как репозиторий имеет базовые crud методы которые позволяют например построить таблицу со списком сущностей, при создании объекта таблицы передается репозиторий сущности с контрактом интерфейса CRUD методов. Не представляю как получилось бы сделать работая только с агрегатом, хотя были попытки в эту сторону.
Ответ написан
Комментировать
@ddd329
Ну тогда АГРЕГАТ будет состоять из одной СУЩНОСТИ - City
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы