データマッパーとデータアクセスオブジェクトパターンの違いを理解するのを手伝ってくれる人はいますか? zandstra の本からデータ マッパー パターンについては既に知っています。しかし、データ アクセス オブジェクトを検索すると、非常に類似した、または同じパターンさえあることがわかりました。また、独自のフレームワークを作成するときにどれを使用する必要があるかを知りたいです (最新のフレームワークがどのように機能するかを学ぶためだけに、独自の mvc php フレームワークを実装しようとしています)。
4363 次
1 に答える
10
データ マッパーは、ドメイン オブジェクトから直接データを保存 (および復元) しますが、データ アクセス オブジェクトは、ドメイン オブジェクトとストレージ抽象化の間の情報交換の仲介として使用されます。
<update>
2 つのアプローチの主な違いは、データ マッパーが一時的にドメイン オブジェクトを制御するのに対し、データ アクセス オブジェクトはドメインによって間接的に (サービスなどのより高いレベルの抽象化を介して) データを受け取るか、ドメインによって制御される (一部の実装ではインスタンス化されることさえあります) ことです。物体。</update>
どちらのパターンも、ドメイン ロジックとストレージの抽象化を 1 つのインスタンスに組み合わせたアクティブ レコード(アンチ) パターンとリモートで関連していないため、 SRPが壊れます。
また、前述のパターンはいずれも ORM に関連付けられていません。一部の ORM は、実装に上記のパターンを使用しようとしますが、通常は非常に悪い仕事をします。
「最新のフレームワーク」と呼ばれるもののほとんどは、アクティブ レコード パターンを使用し、そのインスタンスを「モデル」と呼んでいます。
于 2012-09-04T19:19:01.050 に答える