TransferオブジェクトとDomainオブジェクトの違いを簡単に説明していただけませんか?そして、uがJava=の例を示すことができれば、それは素晴らしいことです。
貧血データモデルを使用している場合(つまり、ドメインオブジェクトにロジックがない場合)、DTOとドメインオブジェクトは同じオブジェクトにすることができます。
Data-Transfer-Object(DTO)は、アプリケーションの異なる部分(異なるレイヤーなど)間または異なるアプリケーション間でデータを交換するために使用されます。
ドメインオブジェクト(DO)(およびそれらの派生元のクラス)はビジネスロジックを実装するため、ビジネスロジックレイヤー/ドメインにのみ配置されます(基本的な意味は用語が同じであっても同じです)異なっています)。
DOはビジネスロジックを実装するため、複雑になる可能性があり、メソッド、イベントなどを含めることができます。
DTOに関するもう1つのポイント
マーティンファウラー学派の思想によると、DTOは複数のオブジェクトの組み合わせです(それぞれがほとんどの人が通常DTOと呼ぶものです)。理論的根拠は、状況によっては、データの大きなパッケージをそれほど頻繁に送信しない方が費用がかからないということです(「おしゃべり」で多くの小さなパッケージを常時送信するのではなく)。
したがって、ほとんどの人がDTOを単一のオブジェクトとして表示する場合、Martin Fは、DTOは単にseveral離散(およびおそらく関連のない)オブジェクトを含む「エンベロープ」であると述べています。大きな問題ではないIMO-ほとんどの人は、DTOは私の定義に従ってこの回答の上部にある(またはそれに近いもの)と考えています。
転送オブジェクトは、その使用の性質上、しばしばシリアライズ可能です。これは、呼び出しがリモートでJVM間である場合、またはステートフルセッションBeanなどのシリアライズを促進する方法で使用される場合に特に関係があります。この目的のために、転送オブジェクトはそのような「処理」の影響を受けやすい必要があります。転送オブジェクトはシリアライズ可能を実装します。
ドメインオブジェクトについては、その逆は言えません。ドメインオブジェクトには動作が含まれている場合がありますが、DTOは単なる転送媒体です。