データマッパー
オブジェクトとデータベース間でデータの移動を行い、それらを互いに独立させ、またマッパー自体からも独立させるマッパーのレイヤー。
詳細な説明については P of EAA ページの 165 を参照してください。
オブジェクトとリレーショナルデータベースでは異なるデータ構造化メカニズムが用いられています。コレクションや継承など、オブジェクトの多くの部分はリレーショナルデータベースには存在しません。ビジネスロジックを多く含むオブジェクトモデルを構築する場合、これらのメカニズムを使用してデータとそれに付随する動作を整理するとよいでしょう。そうすることで、バリアントスキーマが生まれます。つまり、オブジェクトスキーマとリレーショナルスキーマが一致しないということです。
それでも 2 つのスキーマ間でデータを転送する必要があり、このデータ転送がそれ自体が複雑さになります。メモリオブジェクトがリレーショナルデータベースの構造を認識している場合、一方の変更は他方にも波及する傾向があります。
データマッパーは、メモリオブジェクトとデータベースを分離するソフトウェアレイヤーです。その职责は、2 つの間でデータの転送を行うことと、2 つを互いに分離することです。データマッパーを使用すると、メモリオブジェクトはデータベースの存在を認識する必要すらなくなります。それらは SQL インターフェイスコードを必要とせず、データベーススキーマの知識も必要としないのです(データベーススキーマは、それを利用するオブジェクトには常に無知です)。マッパーの一形態であるため、データマッパー自体もドメインレイヤーには認識されていません。