ドメイン サービスとアプリケーション サービスの違いを、いくつか例を挙げて説明してもらえますか? また、サービスがドメイン サービスである場合、このサービスの実際の実装をドメイン アセンブリ内に配置するのでしょうか。また、その場合、そのドメイン サービスにリポジトリを挿入するのでしょうか? 情報があると非常に助かります。
ベストアンサー1
サービスには、ドメイン サービス、アプリケーション サービス、インフラストラクチャ サービスの 3 種類があります。
- ドメイン サービス:ドメイン オブジェクト内に自然には適合しないビジネス ロジックをカプセル化します。これらは一般的な CRUD 操作ではないため、リポジトリに属します。
- アプリケーション サービス: 外部の消費者がシステムと通信するために使用します ( Web サービスなど)。消費者が CRUD 操作にアクセスする必要がある場合は、ここで公開されます。
- インフラストラクチャ サービス: 技術的な懸念事項 (MSMQ、電子メール プロバイダーなど) を抽象化するために使用されます。
ドメイン オブジェクトとともにドメイン サービスを維持することは賢明です。これらはすべてドメイン ロジックに重点を置いています。また、サービスにリポジトリを挿入することもできます。
アプリケーション サービスは通常、外部要求を処理するためにドメイン サービスとリポジトリの両方を使用します。