サービスレイヤーによって呼び出されるデータアクセスを担当するリポジトリレイヤーがあります。サービス層は、シリアル化されてネットワーク経由で送信される DTO を返します。多くの場合、サービスはリポジトリにアクセスし、リポジトリが返すものを返すだけです。
しかし、それが機能するには、リポジトリがその DTO のインスタンスを返す必要があります。それ以外の場合は、最初に、リポジトリが返すデータ レイヤー オブジェクトをサービス レイヤーの DTO にマップし、それを返す必要があります。それは無駄に思えます。
その上、DTO の作成がサービス レイヤーで発生する場合、以前は 1 つのリポジトリ呼び出しで 1 つのデータベース クエリで実行されていた可能性があることを、サービス レイヤーで複数のリポジトリ呼び出しで実行して「作成」する必要があります。最終DTO。もちろん、そのような合成オブジェクトを含むことができるデータ層とサービス層の間のトランスポート オブジェクトを作成しない限り。次に、 DTOにマップする必要があります。純粋さのために無駄に思えるだけです。しかし、ネットワーク経由で送信するために存在するだけのオブジェクトをリポジトリ層に返すのも、間違っているように感じます。