6

Java EE 6 の実装で適用できる設計パターンについて教えてください。

  • MVC。
  • GOF。
  • ダオ
  • 永続的なリレーショナル マッピング
  • プーリング
  • CEC
  • エンティティー管理境界 (ECB)
  • その他多数

JPAはDAOの使用を排除しますか?
学習できる他のパターンを提供してください。

4

2 に答える 2

12

ここに良いリファレンスがあります: http://martinfowler.com/eaaCatalog/

また、ここ: http://java.sun.com/blueprints/corej2eeppatterns/Patterns/index.html

また、JPA は必ずしも DAO レイヤーの必要性をなくすわけではありません。代わりに、DAO レイヤーは引き続き JPA クエリを構築し (おそらくファインダー メソッド内)、それらのクエリが返したエンティティを返します。

DAO レイヤーを排除し、代わりにビジネス層内の JPA エンティティを直接ヒットすることもできますが、個人的には、特に JPA といくつかの JPA を混同しなければならない場合に、個別の永続性 (DAO) とビジネス層を維持することを好みます。プレーンな JDBC など

ここに議論の素晴らしい要約があります。最善の答えは、場合によるということです。アプリが複雑で、場合によっては JDBC に直接アクセスする場合 (JPA および ORM ツールがすべての解決策であるとは限らず、いくつかの点で非常に悪いため)、または単にアクセスできないソースからデータをプルする必要がある場合ORM ではうまく動作しません。とにかく DAO レイヤーが必要になるので、私の考えでは、一貫性を保ち、すべてに DAO レイヤーを使用したいと考えています。通常はそれほど複雑ではなく、ビジネス ロジックを永続化ロジックから分離します。これは良いことだと思います。ただし、これは個人の好みの問題であり、アプリが適切にシンプルである場合、それはおそらくやり過ぎです。

ここでは、JPA で使用できる一般的な DAO パターンの適切な推奨事項があります。これにより、特定の DAO に対してこれをいつでもオーバーライドできるという点で、DAO の利点が得られますが、より標準的で典型的なデータベースの対話はより単純に保たれます。

于 2011-04-08T03:37:09.323 に答える
4

Java EE 6 (Java EE 5 ではない) を使用する場合、技術的な J2EE パターンの一部は、J2EE で使用されるタスクに不要になります。

たとえば、ServiceLocator の代わりにインジェクションを使用します。

@参照http://pawelstawicki.blogspot.com/2010/07/review-real-world-java-ee-patterns.html


GOF パターンは、Java EE に関連する (だけではない) ものではないため、依然として必要です。

一般に:パターンには意図があります:環境によって提供される特定の機能セットを使用して、問題のソリューション/ベストプラクティスを生成したいと考えています(あなたの場合:Java、Java EE 6などです)

  • 問題が解決した場合: パターンはもう必要ありません
  • パターンが好きだった後に環境が変わった場合は、パターンを再考する必要があります。問題がなくなる可能性があるため (最初のポイント)、問題を処理するためのより良い方法があるからです。
于 2011-04-08T07:04:44.257 に答える