23

著書「エンタープライズ アプリケーション アーキテクチャのパターン」で、Martin Fowler は、ソフトウェア開発、特に ORM に関連して一般的に見られる永続化パターンについて語っています。

Hibernate が最も厳密に準拠しているパターンはありますか?

4

4 に答える 4

15

Hibernate はいくつかのパターンを利用します:

  • 遅延読み込み(コレクションのプロキシ)
  • 作業単位(Session オブジェクトの一部として)
  • おそらくIdentity Mapかもっと洗練されたもの
  • メタデータのマッピング
  • Criterion API のクエリ オブジェクト
  • すべてのオブジェクト リレーショナル構造パターン
于 2009-08-20T18:53:59.160 に答える
12

Hibernate は ActiveRecord パターンに従いません。Hibernate が最も密接に準拠するパターンは、Datamapperパターンです。

于 2009-08-20T22:27:31.693 に答える
2

デザイン パターンを明示的に探している場合は、Hibernate をアクティブ レコード パターンを実装するための派手な API と見なすことができます。

ソフトウェア エンジニアリングでは、アクティブ レコード パターンは、リレーショナル データベースにデータを格納するソフトウェアでよく見られる設計パターンです。Martin Fowler が彼の著書 Patterns of Enterprise Application Architecture で命名しました。このようなオブジェクトへのインターフェイスには、Insert、Update、Delete などの関数と、基になるデータベース テーブルの列に多かれ少なかれ直接対応するプロパティが含まれます。

アクティブ レコードは、データベース内のデータにアクセスするためのアプローチです。データベースのテーブルまたはビューはクラスにラップされます。したがって、オブジェクト インスタンスはテーブル内の 1 つの行に関連付けられます。オブジェクトの作成後、保存時に新しい行がテーブルに追加されます。ロードされたオブジェクトはデータベースから情報を取得します。オブジェクトが更新されると、テーブル内の対応する行も更新されます。ラッパー クラスは、テーブルまたはビューの各列のアクセサー メソッドまたはプロパティを実装します。

于 2009-08-20T18:55:20.873 に答える
1

Hibernate は明らかにドメイン モデルです。ORM のオブジェクトはドメイン モデルであるため、それなしでは ORM を実行できません。

于 2009-08-20T23:35:09.920 に答える