Repository
ドメイン駆動設計
アプリケーション
が
データストア
など外部と接触する
ロジック
と,接触しない
ロジック
の境界に設置する
interface
.
永続化
も
再構築
も
Repository
を仲介する.
削除
も
Repository
が提供する.
更新
は
Repository
で行わない.
オブジェクト
自身が
更新
して
永続化
を利用する.
code:IUserRepository.cs
interface IUserRepository {
void Save(User user);
User Find(UserId id);
User Find(UserName name);
void Delete(User user);
}
設計
方針にはおもに2つの選択肢がある
集約
の最新状態の
永続化
と
再構築
コマンド
と
クエリ
の分離