DAO/DTO デザイン パターンを使用してデータベースからデータを取得する、かなり大規模なアプリケーションを構築しています。アプリケーションでは、特定の DTO が「コア データ構造」になり、プロジェクト全体で参照されます。この DTO をプロジェクト全体に深く統合するのが良い方法なのか、それとも DTO を非 DTO オブジェクトに変換する何らかの変換レイヤーが必要なのか疑問に思っています。
この変換レイヤーを使用する理由と反対する理由がわかります。たとえば、変換レイヤーがある場合: 1) DTO を大幅に変更すると、プロジェクト全体でエラーが発生する可能性があるため、変換レイヤーを使用すると、エラーがコード内の 1 つのポイントに分離されます。2) 自動生成されるため、DTO に追加できないコア データ構造にロジックを追加できます。
ただし、変換レイヤーを持つことにも欠点があります。1) DTO が変更されるたびに、DTO 変換コードの一貫性を維持する必要があります。これにより、プログラマーが認識しなければならない別のステップが追加されるため、エラーが発生しやすくなります。2) ほとんどの場合、DTO のアクセサーをコピーしているため、これもコードの重複につながります。
最適なルートは何ですか? どこにでもあるDTOか、変換層か? 誰かが私を正しい方向に導くことができますか?