1

User と Review という 2 つの単純なエンティティがあるとします。ユーザーが Review リポジトリを呼び出すと、どの程度問題になりますか? ユーザーがレビューを取得するための「クリーンな」方法は何ですか?

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

私はこの質問を見ましたが、これは悪い習慣だと彼らは言っていますが、そこには答えが見つかりませんでした。

4

1 に答える 1

3

DDDのクリーンな方法は、ユーザーを要求するときにUserRepositoryにユーザーのレビューを入力させることです。

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

ただし、これを行う前に、ドメイン内のユーザーエンティティもAggregateRootであることを確認する必要があります。AggregateRootsのみがリポジトリを持っています。この質問を見て、aggregaterootsを設計する際の問題を確認または洞察を得てください。

于 2011-07-25T14:56:09.913 に答える