アクティブレコードは、データアクセスのためのデザインパターンです...
現時点では私は、データアクセスに関する渡って来るように見える二つの主要なデザインパターンがあります。ActiveRecordのとリポジトリパターンは、
Active Recordは
あなたのオブジェクトには、DBにその状態を持続(またはその他の永続化メカニズム)のためのメソッドが含まれています
Customerオブジェクトがある可能性があります。
CustomerオブジェクトはCustomer.Save();, Customer.Get(int型ID)のような方法の束を有することになります。その他。
これらのメソッドは、本当に現実の世界での顧客とは何の関係もありません。これらは実際にアプリケーションのインフラストラクチャに関するものです。リポジトリパターンでは
リポジトリパターン
、顧客オブジェクトは、POCO、またはダム対象になります。あなたが顧客を保持したい場合にのみ、それは本当に顧客を表現するために必要メソッドとプロパティ(名前、メールアドレス、リストの受注などのようなもの)
を持っている - あなたは単にあなたのリポジトリに
を渡します
Repository.Save(MyCustomer)。
アクティブなレコードパターンはすばやく簡単に操作できます。残念ながら、お客様のドメインモデルは、お客様とはまったく関係のないこれらの方法で混乱します。これにより、時間の経過とともにドメインモデルを維持するのが少し難しくなります。アクティブレコードパターンを使用することは非常に適切であるような状況のロットの
。たとえば、おそらくあまり変わっていないかなりシンプルなアプリを書いているのなら、おそらくSubSonicを起動し、Active Record DALを生成するでしょう。私は20分以内に私のビジネスコードをコーディングして、すべてのDBのものはすでに世話をしています。
一方で、私は変更することが、高い感受性と、特に複雑なドメインをモデリングしています、私はむしろきれいな私のドメインモデルを維持し、NHibernateはまたは類似でリポジトリパターンを実装したい、なら...
ADO.Netを使用して自分自身のデータアクセスをロールバックして以来、ずっと長い時間がかかりました。
+1の中でも最もクールな機能の1つです。非常に良い説明 –