私の意見では、このような問題を克服する方法はたくさんあります。まず、ドメイン モデルが他のドメイン モデルにアクセスできる必要があるのはなぜですか。
a)より複雑なドメインモデルを作成する場合 ==> このドメインモデルは、ViewModel を作成するための Service 層のユーザーになることができます。==> このビューモデルはクライアントに返されます。
この場合、アセンブルはドメイン層ではなく、サービス層に参加する必要があります。つまり、ドメイン モデルと隣接するサービスに何らかの要求を送信し、それらから結果を取得し、それらを特定の ViewModel にまとめて構成し、最終的に結果をクライアントに返します。
b) ドメイン モデルは、いくつかのビジネス ルールのチェックを担当します。それらのいくつかは他のシステムでチェックされるため、ドメイン モデルで隣接するシステムにアクセスすることを決定したとします。
ドメインモデルの責任(システムに属する)は、システムに関するいくつかのルールを正確にチェックすることであり、その境界の外にあるものではないことを考慮してください。つまり、ドメイン モデルが他のシステム ドメインにアクセスできないようにする必要があります。これらのシステム間に依存関係があります。サービス指向アーキテクチャに基づくアプローチは適切ではありません。これは疎結合設計に反します。代わりに、サービス層でこれらのシステム間を調整する必要があります。サービス層は、いくつかの要求をさまざまなシステムに送信し、それらから何らかの応答を取得します。最終的な決定は、全体的な結果に従って行われます。