ddd-repository-placement
Installation
SKILL.md
リポジトリインターフェースの配置
結論
リポジトリインターフェースはユースケース層に置く。ドメイン層には置かない。
なぜドメイン層に置くと問題か
物理的な近さが結合を誘発する
同じ層にあると、ドメインモデルがリポジトリを使いやすくなる:
// ❌ 集約の中でリポジトリを使ってしまう
class Order {
Order withRelatedOrder(OrderId relatedId, OrderRepository repo) {
Order related = repo.findById(relatedId); // ← 同じ層にあるから気軽に使える
return this.withAddedRelatedOrder(related);
}
Related skills