新規作成  編集  差分  FrontPage  ページ一覧  検索  更新履歴  RSS  ソース  ログイン

DataMapper

原文: http://www.martinfowler.com/eaaCatalog/dataMapper.html

Mapper (473) レイヤは、オブジェクトとデータベース間でデータを移動させる。データは、オブジェクト、データベース、およびMapperから独立させる。

解説の全文は『PofEAA165 ページを参照。

databaseMapperSketch.gif

オブジェクトとリレーショナルデータベースは、 異なるメカニズムでデータを構成している。 オブジェクトの多くの部分(コレクションや継承など)は、 リレーショナルデータベースでは表すことができない。 多くのビジネスロジックを伴ったオブジェクトモデルを構築する場合、 データおよびデータに付随する振る舞いをうまくまとめるために、 このメカニズムを使うことは非常に大切である。 これによりスキーマが異なったままとなる。 つまり、オブジェクトスキーマとリレーショナルスキーマはマッチしないのである。

他にも、2つのスキーマ間でデータを転送しなければならない。 このデータ転送は、それ自体が複雑な代物である。 メモリ内のオブジェクトがリレーショナルデータベース構造を知っている場合、 どこかひとつを変更すると、他のところにも波及してしまう。

DataMapperは、メモリ内のオブジェクトをデータベースから分離するためのソフトウェアレイヤである。 その責任は両者間でデータを受け渡しすること、そして、両者を分離することである。 DataMapperを使うと、メモリ内のオブジェクトはどこにデータベースがあるのかすら知る必要がない。SQLインターフェースコードも必要なく、データベーススキーマも知らないだろう。(データベーススキーマは、自分を使用しているオブジェクトのことを常に知らない。) Mapper (473)の一種であるため、ドメインレイヤはDataMapperのことを知らない。

更新日時:2012/08/08 04:36:53
キーワード:
参照:[SideMenu] [OrganizingDomainLogic] [CatalogOfPofEAAInJapanese] [CatalogOfPofEAA] [ReadingPofEAA007] [CorrespondingCatalogOfPofEAA]