web-dev-qa-db-ja.com

POJO(Plain Old Java Object)とDTO(Data Transfer Object)の違いは何ですか?

違いがわかりません。誰かがそれらを区別する方法を知っていますか?

22
d1ck50n

POJOまたは「PlainOld Java Object」は、EJB(元々)または「重い」と見なされるものとは対照的に、「通常の」Javaオブジェクトを説明するために使用される名前です。 「他のテクノロジーに依存しています。

DTOまたは「データ転送オブジェクト」は、通常は「ビジネス」クラスと永続層の間でデータを転送するためのオブジェクトです。これは通常、Cスタイルの構造体によく似た動作のないクラスです。それらは時代遅れの概念です。

14
SingleShot

[〜#〜] pojo [〜#〜]は単純なJavaオブジェクト、頭字語が使用されますそれは本当に特別なことではないことを強調します。

[〜#〜] dto [〜#〜]は、レイヤー間の接続を介して転送されるデータをカプセル化するために使用されるデータ転送オブジェクトです。サブシステム。ウィキペディアの記事を参照してください。これはコアJ2EEパターンでもあります( http://www.Oracle.com/technetwork/Java/transferobject-139757.html )。

http://en.wikipedia.org/wiki/Data_transfer_object

10
Jon

すべてのDTOはPOJOですが、すべてのPOJOがDTOであるとは限りません。 DTOではないPOJOの例は、状態と動作(ビジネスロジック)を含むビジネスクラスです。

7
Paulo Merson

DTOはpojoですが、pojoはdtoではありません。pojoはより多くの動作を行うことができますが、DTOは基本的に動作を行わないためです。

Oracleドキュメントには明確な説明があります。

5
user3016087

DTO(データ転送オブジェクト):システム内でデータを転送するために使用されるコアJ2EEデザインパターンです。 DTOパターン


POJO(Plain Old Java Object):それは人々がそれを示唆するために使用する単なる頭字語ですは単純なJavaオブジェクトです(最近では、完全な作業を行うために注釈が付けられています)。

DTOパターン
J2EEパターンカタログ

5
user10398

POJOには動作があります。本POJOsin Actionは、アプリケーション開発のためのPOJOSの使用について詳しく説明しています。 DTOは、あるレイヤーから別のレイヤーにデータを転送するのに役立つデータコンテナーです。 DTOには動作が含まれることは想定されていません。

3

この文からPOJOとDTOの違いを理解できました DTOのwiki

DTOは単純なオブジェクトであり、ビジネスロジックを含めるべきではありませんが、ネットワークを介してデータを転送するためのシリアル化および逆シリアル化メカニズムを含めることができます。

また、DTOは完全に視覚化され、Martin Fowlerの エンタープライズアプリケーションアーキテクチャのパターンのカタログ で詳細に説明されています。

0
Hardzsi