質問

匿名の質問の概念はある程度の概念ですか?主な違いはどこにありますか(コンテキスト、構造、...)、もう1つのサブセットと見なすことができますか?これはウィキペディアからのいくつかの簡単な定義です。

pojo(普通の古いJavaオブジェクト) wikipedia

コンピューティングソフトウェアでは、Pojoは 普通の古いJavaオブジェクトの頭字語。 the 名前は与えられたことを強調するために使用されます オブジェクトは通常のJavaオブジェクトです 特別なオブジェクト、そして特に エンタープライズのJavaBeanではありません。用語 Martin Fowler、Rebeccaによって造られました パーソンズとジョシュマッケンジー 2000年9月:

"We wondered why people were so against using regular objects in their
 systems and concluded that it was
 because simple objects lacked a fancy
 name. So we gave them one, and it's
 caught on very nicely."
.

java bean wikipedia

JavaBeansは再利用可能なソフトウェアです にできるJavaのコンポーネント ビルダーに視覚的に操作された ツール。実際には、彼らはクラスです Javaプログラミングで書かれています 特定の言語 コンベンション。彼らはに慣れています 多くのオブジェクトを単一のオブジェクトにカプセル化します オブジェクト(Bean)、 シングルBeanオブジェクトとして渡されます 複数の個人としてはなく オブジェクトJavaBeanはJavaオブジェクトです それは直列化可能で、ヌラリを持っています コンストラクタ、およびアクセスを許可します ゲッターとセッターを使用したプロパティ 方法。

値オブジェクト WIKIPEDIA

データ転送オブジェクト(DTO)、以前 値オブジェクトまたはvoとして知られている、Aです データの転送に使用されるデザインパターン ソフトウェアアプリケーション間 サブシステムDTOはよく使用されます データアクセスオブジェクトと組み合わせて データベースからデータを取得するには。

ビジネスオブジェクト Wikipedia

ビジネスオブジェクトはの型です 理解できるエンティティは俳優です A.のビジネス層の内側 N層状オブジェクト指向コンピュータ プログラム

関連:

DTOの違い、vo、Pojo、JavaBeans? JavaBeanとPojoの違いは何ですか?< / a> DDD:違いの使用は何ですかエンティティとバリューオブジェクトの間に?

役に立ちましたか?

解決

これらの分類のすべてが関連しているわけではありません。これが私の理解です:

  • pojoは、その名前が示唆しているものです - 普通の古いJavaオブジェクト。それについて特別なことは何もありません。そして、これはまさにオブジェクトがPOJOであると言うときに伝えたいことです。今日、ほとんどのアプリケーションはいくつかの種類の基礎となるフレームワークを使用しており、フレームワークではフレームワークと統合されるオブジェクトの要件が含まれています - オブジェクトはインターフェイスを実装するか、クラスを拡張する必要があります。オブジェクトがPojoであると言うと、それが普通のオブジェクトであると言うことを意味し、どのフレームワークにも依存関係はありません。

  • JavaBeanは、質問の説明に従って特定の規則に従うJavaクラスです。そのようなオブジェクトは、反射を使用して対象のプロパティ(ゲッター/セッターを通じて)を調べ、それらを操作するために反射を使用する特定のフレームワークによって義務付けられています。 JSPS、Spring Beansなどに晒されている豆は、JavaBeansについての良いことはまだPOJOSであることです。それらは特定の規則に従いますが、規則は特定のフレームワークによって定義されていませんが、Sun JavaBean Standardによってかなり定義されており、クラスはまだサードパーティのフレームワークのクラスまたはインターフェイスとの関係があります。

  • ビジネス・オブジェクトは、ビジネス・ドメインエンティティを表すオブジェクトを参照してください。これらは通常あなたのビジネス層にあります - すべてのビジネスロジックがあるレイヤー。これらのオブジェクトは通常、永続ストアエンティティにマッピングされます。テーブルこれらのオブジェクトはPOJOS、JavaBeans、EJBなどでも構いません。

  • 値オブジェクトはデザインパターンの一種です。いくつかの小さなWebアプリケーションでは、Web層でもビジネスオブジェクトを使用することもできます。ただし、アプリケーションまたはJ2EEアプリケーションの方が、ビジネス層からWeb層への情報を移動するための値オブジェクトを定義します。そのため、データ転送オブジェクト(DTO)とも呼ばれます。これらのオブジェクトは通常、Web層に必要な属性のみを持ち、ビジネスレイヤの消費を引き起こしたビジネスオブジェクトの属性を残します。ビジネス層で生成される「計算された」属性もあります。このパターンを使用すると、ビジネスとWebレイヤーの切り離しができます。

他のヒント

これが私の服用:

  1. ビジネスオブジェクトは総称です 抽象的なアイデアのために あなたの問題を表します。あなたはできる どんな言語でも実装してください。に Java、あなたは追加の選択肢を持っています pojosでもかまいませんので EJB、可変または不変の。
  2. 値オブジェクトまたはDTOは、レイヤ間のデータをフェリーするために使用されます。彼らは通常不変です。それらはPOJOSまたはJava Beanとして実装することができます。それらをPojosの別のサブセットと考えてください。
  3. Java Beanは元のSun仕様に準拠しています。それらを簡単にVBスタイルのIDEに差し込むことを可能にするインターフェースを提供することを意図していました。これらをPojoのサブセットとして考えてください。
  4. 人々は、Java BeansとEnterprise Java Beanの違いについて混同することがあります。 Java Beansは、VBコンポーネントのようなものであることを意図した、元のJava 1.0 SPECの一部です(「Bean Box」を覚えておいてください)。 Enterprise Java Beansは、特別なJavaオブジェクトがJava EE App Serverと相互運用するために特別なインターフェースを実装する方法を説明した仕様でした。 App Serverは、スレッド化、永続性、プール、オブジェクトライフサイクル、メッセージング、命名などを処理する分散コンポーネントアーキテクチャのトランザクションモニタであった.EJBは、Java EEアプリのコンテキスト内でのみ機能するJavaオブジェクトの非常に特別なサブセットです。サーバー
  5. POJOは、Java Beanの標準に準拠するように実装できますが、それは要件ではありません。任意のJavaオブジェクトはPOJOとして修飾されます。もともとEJBバージョン2.0から区別することを意味していました。これは、Java EE App Serverと正しく相互運用するためにいくつかのインタフェースを必要としました。

質問は、これらのいくつかを同義語として使用するのが間違いであるかどうかです(私は何人かの人々をするのを聞いたように)、与えられた分類がサブセットや別のものとして考えることができるならば。

これらの用語を同義語として使用するのは間違いです。彼らは明らかに異なる意味を持っています。引用された定義(および他の回答で提供されているもの)はこれを明確にします。

しかし、同じオブジェクトまたはオブジェクトを記述するためにこれらの用語の多数(または全部)を使用することが多い場合。それはすべての視点の問題です。すなわち、あなたが強調しようとしているオブジェクトのどの側面。

合成(答えから):

  • Pojo :任意のフレームワークに依存しない普通のオブジェクト。そのような要件ではなく、Java Bean規格に準拠するように適合させることができます。
  • javabean :Sun JavaBeanまたはJava 1.0仕様に準拠したオブジェクト(「Beanボックス」を参照)。それらはもともとインターフェースを提供することを意図していましたので、難易度がほとんど難しいVBスタイルのIDEに差し込むことができる。 POJOSのサブセットとして考慮することができ、フレームワークには独立しています。それはアクセス特性への反射などの特定のメカニズムを採用することができます。
  • エンタープライズJava Bean :これらはJava Beansと混同してはいけません。バージョン3.0でもたらされた単純化により、EJBはPOJOと同等のものと見なすことができます。 EJBそれ自体は、Java EEサーバーと相互運用できる特殊なJavaオブジェクトを記述する仕様です。そのようなサーバーは、スレッド化、永続性、プール、オブジェクトライフサイクル、メッセージング、および命名などのものを処理する分散コンポーネントアーキテクチャのコンテキストでトランザクションモニタとして機能します。そのようなEJBは、Java EE Application Serverのコンセントで使用されている非常に特殊なサブセットとして表示できます。
  • ビジネスオブジェクト:特定の問題を表すのに役立つ理論的な概念または抽象的なアイデア。ビジネスドメインのエンティティを表し、アプリケーションのビジネス層にあります。それらは持続性の文脈でエンティティにマッピングすることができます。オブジェクトはPOJO / JAVABEAN / EJBになり、可変または不変のいずれかです。
  • 値オブジェクト/データ転送オブジェクト:ビジネスとWebレイヤの切り離すのに役立つデザインパターンを使用します。これは、オブジェクトがレイヤ間で遷移できる大規模なアプリケーションのコンテキスト(例えば、ビジネスとWeb層)です。それらは通常自然に不変であり、POJOまたはJava Beansとして配合することができます。 1つの特異性は、ビジネス層で生成された計算属性を含めることができるということです。

P.S:コミュニティウィキとしてマークされているので、編集してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top