ドメイン駆動設計: ドメインサービス、アプリケーションサービス [closed] 質問する

ドメイン駆動設計: ドメインサービス、アプリケーションサービス [closed] 質問する

ドメイン サービスとアプリケーション サービスの違いを、いくつか例を挙げて説明してもらえますか? また、サービスがドメイン サービスである場合、このサービスの実際の実装をドメイン アセンブリ内に配置するのでしょうか。また、その場合、そのドメイン サービスにリポジトリを挿入するのでしょうか? 情報があると非常に助かります。

ベストアンサー1

サービスには、ドメイン サービスアプリケーション サービスインフラストラクチャ サービスの 3 種類があります。

  • ドメイン サービス:ドメイン オブジェクト内に自然には適合しないビジネス ロジックをカプセル化します。これらは一般的な CRUD 操作ではないため、リポジトリに属します。
  • アプリケーション サービス: 外部の消費者がシステムと通信するために使用します ( Web サービスなど)。消費者が CRUD 操作にアクセスする必要がある場合は、ここで公開されます。
  • インフラストラクチャ サービス: 技術的な懸念事項 (MSMQ、電子メール プロバイダーなど) を抽象化するために使用されます。

ドメイン オブジェクトとともにドメイン サービスを維持することは賢明です。これらはすべてドメイン ロジックに重点を置いています。また、サービスにリポジトリを挿入することもできます。

アプリケーション サービスは通常、外部要求を処理するためにドメイン サービスリポジトリの両方を使用します。

おすすめ記事