DDDリポジトリメモ
いつになってもDDDがしっくりはまらない。。
調べなおしたところをメモ。
リポジトリについて。
集約内部にあるどのオブジェクトもルートから
辿る以外の方法でアクセスすることは禁止されている。
トランザクションの管理はリポジトリが手を出さないほうが単純になる。
■リポジトリとファクトリの関係
ファクトリはオブジェクトのライフサイクルに
おける始まりを処理し、リポジトリは中期から
終わりを管理するのを助ける。
格納されたオブジェクトを再構成することは
新しい概念オブジェクトを生成することとは違う。
ファクトリ
↓
新しいもの
リポジトリ
↓
永続化したもの
リポジトリは既存のオブジェクトを再構築
するにあたってファクトリを使用する。
探してなければ生成する機能は実装してはいけない。
少し便利になるだけ。両者を透過的に組み合わせると
状況を混乱させてしまう。
新しいのか永続化されているのかははっきりわかったほうが都合が良い。