Может ли организация получить доступ к хранилищу? - PullRequest
1 голос
/ 22 июля 2011

Скажем, у меня есть две простые сущности: Пользователь и Обзор.Насколько это плохо, если пользователь вызывает репозиторий Review?Как «чистый» способ для Пользователя получить свои Отзывы?

class User
{
    public function getReviews()
    {
        return reviewRepository.findByUser(this);
    }
}

Я действительно посмотрел на этот вопрос , но, хотя они говорят, что это плохая практика, яне нашел ответа там.

1 Ответ

3 голосов
/ 25 июля 2011

Чистый способ в DDD состоит в том, чтобы UserRepository заполнял отзывы Пользователя при запросе Пользователя.

class UserRepository
{
  public User GetUserByID(long userId)
  {
    var user = CreateUser();
    user.Reviews = FindReviewsforUser(userID);
    return user;
  }
}

Но прежде чем сделать это, вам необходимо убедиться, что ваша Пользовательская сущность в вашем Домене также является AggregateRoot! Только AggregateRoots имеют репозитории. Пожалуйста, посмотрите на этот вопрос , чтобы увидеть или получить представление о проблемах при разработке агрегатоотводов.

...