フォーラムを含むドメインモデルがあります。
フォーラム、スレッド、投稿のエンティティがあります。
フォーラムはスタンドアロンのエンティティです。つまり、アグリゲートの一部としてスレッドが含まれていません。これは、スレッドが特定のフォーラムによって所有されていないためです(スレッドを別のフォーラムに移動できます)。
スレッドアグリゲートの一部として投稿をモデル化する必要があるかどうかはわかりません。投稿はスレッドなしでは存在できません。スレッドを削除すると、投稿をスレッドの一部にするように指示された投稿を削除する必要があります。
唯一のことは、投稿を編集するときにスタンドアロンで取得することもできるということです。つまり、IDで投稿を編集する場合です。
したがって、スレッドをフェッチしてから、スレッドエンティティのメソッドを介して適切な投稿をフェッチするよりも、投稿リポジトリを用意する方がこの目的に適していると思います。
個別の投稿リポジトリを持つことの唯一のことは、投稿を追加するとき、つまりaddPost(Post)の場合、スレッドIDが投稿エンティティに割り当てられていることを確認する必要があるということです。集計を使用すると、スレッドエンティティにaddPostメソッドがあると思います。
制限されたコンテキストについて考える必要がありますか?投稿エンティティとリポジトリを作成し、投稿エンティティも含むスレッド集計を作成できますか?
スレッド/ポストアグリゲートを使用しなかった場合、スレッドを削除するときにポスト削除をどのように処理しますか?スレッドリポジトリでdeleteThread(Thread)を呼び出し、ポストリポジトリでdeletePostsByThreadId(id)を呼び出すサービスを作成する必要がありますか?
ここでのDDDの方法は何ですか?