3

J2EE DAO パターンに関するこのオラクルの記事から直接:

確かにすべてが非常に明確ですが、転送オブジェクトの「参加者」(彼らが呼ぶように)です。

ここで、より多くの洞察が必要な部分を引用します(特に、実際の例(簡単なもの)で役立つでしょう)。

TransferObject

これは、データ キャリアとして使用される転送オブジェクトを表します。DataAccessObject は、転送オブジェクトを使用してデータをクライアントに返すことができます。DataAccessObject は、Transfer Object でクライアントからデータを受信して​​、データ ソース内のデータを更新することもできます。

このパターンを演習として使用しようとしています (OCPJP 試験の学生として、DAO パターンを理解する必要があります)。これまでのところ、DataSource (mysql データベース)、ビジネス オブジェクト (Person と呼ばれる JavaBean)、およびデータベースと JavaBean (Person) の間で適切に接続されている DAO オブジェクトがあります。

もう一度言いますが、転送オブジェクトとは正確には何ですか?

編集: 最初の返信から、私は実際には転送オブジェクトが何であるかを知っていますが、ビジネスオブジェクトが何であるかはわかりません...だから、質問は同じままですが、ビジネスオブジェクトについてです。転送オブジェクト用ではありません。

事前に感謝し、申し訳ありません。

前もって感謝します。

4

3 に答える 3

3

DTO

DTO には、独自のデータ (アクセサーとミューテーター) の格納と取得以外の動作はありません。DTO は、テストが必要なビジネス ロジックを含めない単純なオブジェクトです。

DTO の使用法

ケース 1: ドメイン オブジェクトが巨大な場合は DTO を使用するが、そのオブジェクトのいくつかの属性が必要なだけです! クライアントがその属性のいくつかのみを視覚化、変更、または表示する大規模なドメイン オブジェクトの場合。この場合、次の表記法を使用することをお勧めします: prefixDTO. これは、クライアントが作業を行うために使用するオブジェクトです。サービスはドメイン オブジェクトを取得し、DTO を作成して返します。この DTO が、ユーザーが値を設定する際に何かを入力できるウィザードまたは一種のフォーミュラで使用される場合、つまり、入力された情報をデータベースに保存する必要がある場合は、DTO に加えて、次の名前の新しいオブジェクトを使用する必要があります: prefixDTOData . どうして?そうしないと、属性をデータベースに書き込むサービスに、ドメイン オブジェクト全体 (ドメイン オブジェクトが巨大であることを思い出してください) を反復処理させて、データベースに書き込む前に変更を探して比較するように強制するためです。

ケース 2: クライアントが異なるドメイン オブジェクトのフィールドを表示する必要がある場合は、DTO を使用します。この特殊なケースでは、必要なすべての属性をデータベースに既にまとめて配置し、クライアントに送信されるサービスに渡されるサーバーで DTO を作成することを検討できます。クライアントはケース 1 と同じように prefixDTOData を作成し、それをサービスに返します。理由は、ケース 1 で説明したのと同じです。

于 2013-06-09T09:57:21.173 に答える
2

あるレイヤーから別のレイヤーにデータを転送します。VO DTO(DATA TRANSFER OBJECT) or(VALUE OBJECT) として呼び出すことができます。

たとえば、フォームに入力すると、データベースに保存するユーザーの詳細が含まれます。最初の値はアクション クラスに送られます。次に、サービスを介して DAO に送信する必要があります。アクション クラスでは、すべての詳細をクラスに設定します。そして、サービスクラスでアクセスします

于 2013-06-09T09:55:30.240 に答える