ごらくらいふ

プログラミングしたりゲームしたり

DDDエリック本を読んでいる:RepositoryとFactoryの関係

DDDについてEric本を読んでいたところ、オブジェクトの生成やシリアライズについての指針が参考にできそうだったので、メモ。

  • Factoryはオブジェクトのライフサイクルにおける始まりを処理し、リポジトリは中期から終わりを管理するのを助ける。
  • リポジトリはデータに基づいてオブジェクトを生成するので、多くの人はリポジトリのことをファクトリであると考える。
  • しかし、格納されたオブジェクトを再構成することは、新しい概念オブジェクトを生成することとは異なる。
  • リポジトリのクライアントには、オブジェクトがメモリにあると錯覚させなければならない。
  • リポジトリがオブジェクトの生成をファクトリに委譲すれば良い。

重要なのは末尾の項目で、リポジトリシリアライズされたデータを永続化媒体から(アダプタを介して)取得して、ファクトリに流し込んであげればよい。

雑念

  • (いや、アダプタを介して取得したデータが全て特定のシリアライズに統一して良いのだろうか…?)
  • (永続化媒体ごとにアダプタがあるなら、アダプタごとにシリアライズの方式が異なる…?)
  • (つまりアダプタがファクトリを持つ?)
  • (むしろリポジトリがアダプタ…?)
  • (ファクトリのパターンはファクトリクラスでもファクトリメソッドでもビルダーでも状況に応じてチョイスしてね、みたいな感じだった)
  • Kindleのハイライトめっちゃ便利だ…)

参照元

エリック・エヴァンスドメイン駆動設計

  • 第2部 モデル駆動設計の構成要素

より

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)