1

アプリケーション サービスは、ワークフローインフラストラクチャ サービスドメイン サービス、およびドメイン エンティティへの呼び出しを行って調整することにより、クライアント (つまり、プレゼンテーション層) によって発行されたコマンドを実行します。

Application Servicesと同様の仕事をするDomain Servicesをほとんど持たないのが一般的な方法ですか。つまり、それらは呼び出しも行い、調整します。違いは、より細かいレベルでそれを行うことだけです (つまり、他のサービスへの呼び出しのみを行い、調整するだけです)。ドメイン サービスドメイン オブジェクト)?

はいの場合、これらのドメイン サービスをどの程度きめ細かくする必要があるかについてのアイデアはありますか?

ありがとうございました

4

1 に答える 1

1

ドメイン サービスには、どのエンティティにも特に適合しない、または複数のエンティティにまたがるドメイン ロジックが含まれています。

よく引用される例の 1 つは FundsTransferService です。資金の移動は BankAccount エンティティの責任ではないように思われます。これは、ソース アカウントがターゲット アカウントの残高を変更できる (またはその逆) 可能性があることを意味するためです。FundsTransferService の専用の TransferFunds() メソッドを使用すると、問題をより適切に分離し、すべての資金の動きを 1 か所で管理できます。

その点で、ドメイン サービスはエンティティやその他のサービスの呼び出しを調整すると言えますが、アプリケーション層サービスが IMO を行うのと同じ意味ではありません。多くの場合、アプリケーション層サービスは定型的な手続き型コードに過ぎず、ドメイン サービスには実際のビジネス ルールが含まれています。

唯一の違いは、より細かいレベルでそれを行うことです

ドメイン サービスがアプリケーション サービスよりもきめが細かいとは言えません。それらは本質的に異なるレイヤーにあるだけです。リポジトリはコントローラーよりも粒度が細かいと言っているようなものです...通常、粒度は、1 つのまとまりのある操作が大きな手順に対してどの程度小さな部分に分割されるかの尺度です。

于 2012-07-16T12:18:52.193 に答える