それらの違いを見つけることができません。それらを区別する方法を知っている人はいますか?
8 に答える
POJO または「Plain Old Java Object」は、EJB (当初) や他のテクノロジに依存する「重い」と見なされるものとは対照的に、「通常の」Java オブジェクトを表すために使用される名前です。
DTOまたは「データ転送オブジェクト」は、通常は「ビジネス」クラスと永続レイヤーの間でデータを転送するためのオブジェクトです。これは通常、C スタイルの構造体によく似た動作のないクラスです。それらは時代遅れの概念です。
POJOは単純な Java オブジェクトにすぎません。頭字語は、それが特別なものではないことを強調するために使用されます 。
DTOは、レイヤーまたはサブシステム間の接続を介して転送されるデータをカプセル化するために使用されるデータ転送オブジェクトです。ウィキペディアの記事を参照してください。これはコア J2EE パターンでもあります ( http://www.oracle.com/technetwork/java/transferobject-139757.html )。
すべての DTO は POJO ですが、すべての POJO が DTO であるとは限りません。DTO ではない POJO の例は、状態と動作 (ビジネス ロジック) を含むビジネス クラスです。
DTO (データ転送オブジェクト) : システム内でデータを転送するために使用される Core J2EE 設計パターンです。DTO パターン
POJO (Plain Old Java Object) : これは単純な Java オブジェクトであることを示唆するために人々が使用する単なる頭字語です (最近では、意味のある完全な作業を行うために重く注釈が付けられています)。
POJO は振る舞いを持つことができます。本 POJOs in Action では、アプリケーション開発における POJOS の使用について詳しく説明しています。DTO は、あるレイヤーから別のレイヤーにデータを転送するのに役立つデータ コンテナーです。DTO には動作が含まれていないはずです。
DTOのwikiのこの文から、POJOとDTOの違いを理解できました:
DTO は単純なオブジェクトであり、ビジネス ロジックを含める必要はありませんが、ネットワーク経由でデータを転送するためのシリアル化および逆シリアル化メカニズムを含めることができます。
また、DTO は完全に視覚化され、Martin Fowler の「エンタープライズ アプリケーション アーキテクチャのパターンのカタログ」で詳細に説明されています。
POJO = Plain Old Java Object
DTO = データ転送オブジェクト
- 編集
これは、頭字語の意味がわからないことを前提としています。Pojo は、あらゆる種類の継承チェーンから解放された単なるオブジェクトです。DTO はデータ モデルに存在するため、おそらく特定のエンティティに関連する厳密なチェーンに従います。