実践ドメイン駆動設計を読んでいて気になる記載があった。どんな意味なのか考えてみた結果を残しておく。
コレクション指向のリポジトリはSetを模倣したもの、の意味を考える。
Setは重複が無いように登録するコレクション。
⇒ 登録するオブジェクトは同一視の判定をできる必要がある。つまりエンティティ。
⇒ エンティティの変更(=ステータスの変更)があっても同じものに違いは無いので再登録する必要はない。
⇒ 以上の考え方なので、コレクション指向のリポジトリではオブジェクトに変更があっても再登録の必要は無い。
永続指向のリポジトリはMapを模倣したもの、の意味を考える。
Mapはキーと値の組み合わせを登録するコレクション。
⇒ 値は同一視の判定ができない。変更しても同じものだと主張できるなら識別子を含んでいるはずだが、Mapはキーと値を分離しているので値にはキーを含まない。
⇒ 値を変更するときは完全に置き換える必要がある。
⇒ 以上の考え方なので、永続指向のリポジトリではオブジェクトの変更時に明示的なputが必要。
以上。