これだよこれ!ActiveRecordパターンが微妙にしっくりこないので、試行錯誤して行き着いた先がこれでした。
ドメインロジックとデータベースを分離するパターン。
登場人物は
・ドメインオブジェクト(ある問題領域のあるひとつのオブジェクト、例えばブログデータの1件、コメントデータの1件)
・マッパー(ドメインオブジェクトを取得、更新するやつ)
Factoryパターンなんかを使って実装する。PofEAA的に言えば、一意マッピングとレイジーロードの併用か。
ユニットオブワークで変更箇所をプールしたり、一意マッピングを行うためにレジストリを使うかもしれない。
phpDataMapperはドメインオブジェクトにsave()とかは実装しない方針らしい。他のやつもそうなのかな?ドメインオブジェクトとデータベースを分離するかららしい。
rubyの
DataMapperは巨大なデータを後で読み込む「Lazy Loading」や、「Strategic Eager Loading」という関連するデータも同時に読み込む機能があるらしい。詳細は知らん
自分が考えたのはデータマッパーに構造が似てるけど、どうやらなんかデータソースのアーキテクチャに関するパターンの寄せ集めみたいになってる気がする。良いのか悪いのかは知らん