私はDDDが新しく、プロジェクトに適用できるようにいくつかの概念をクリアする必要があります。いくつかのリポジトリで1つのドメインオブジェクト 'filled'
基本的に、私はドメインオブジェクト "顧客"を持っています。 CustomerRepositoryはDALを参照してこのドメインオブジェクトを返します。
問題は、DALは、お客様のドメインオブジェクトを「埋める」ために必要なすべての情報を提供することができないということです。顧客に関する一部の情報は、他の外部リソース、他のリポジトリまたは外部Webサービスによって取得されます。
多分私は "顧客"ドメインオブジェクトを分割する必要があります。しかし、もし私のビジネスロジックが私にそうすることを許していないなら、どうでしょうか?
また、ドメインオブジェクトを返すのはリポジトリの責任ですか?
+1。ドメインのCustomerエンティティを妥協しないでください。そうしないと、ドメインモデル全体にアーキテクチャ上の汚染が広がります。モデルを正確に保つことは、DDDの核心です。リポジトリは、問題に対処するための自然の家です。両方の保存場所(DAL + Webサービスなど)にアクセスできない理由は何ですか? – sfinnie
@sfinnieがある理由は - それは技術的に難しく、パフォーマンスに重大な影響を与える可能性があります。それ以外は何も間違っていません。 –
私はドメインの残りの部分の視点からドメインエンティティを完成させておくことに投票します。あなたは潜在的にレポのためのいくつかの "遅延ロード"タイプの戦略を見ることができます。しかし、まずは簡単に始めて、実際にパフォーマンスの問題がある場合はそこに行くだけです。 – sfinnie