データマッパーの履歴

これだよこれ!ActiveRecordパターンが微妙にしっくりこないので、試行錯誤して行き着いた先がこれでした。

ドメインロジックとデータベースを分離するパターン

登場人物

  • ドメインオブジェクト(ある問題領域のあるひとつのオブジェクト、例えばブログデータの1件、コメントデータの1件)
  • マッパー(ドメインオブジェクトを取得、更新するやつ)


Factoryパターンかを使って実装する。PofEAA的に言えば、一意マッピングレイジーロードの併用か。

ユニットオブワークで変更箇所をプールしたり、一意マッピングを行うためにレジストリを使うかもしれない。


phpDataMapperはドメインオブジェクトにsave()とかは実装しない方針らしい。他のやつもそうなのかな?ドメインオブジェクトとデータベースを分離するかららしい。

rubyのDataMapperは巨大なデータを後で読み込む「Lazy Loading」や、「Strategic Eager Loading」という関連するデータも同時に読み込む機能があるらしい。詳細は知ら


自分が考えたのはデータマッパーに構造が似てるけど、どうやらなかデータソースのアーキテクチャに関するパターンの寄せ集めみたいになってる気がする。良いのか悪いのかは知ら