Я пытаюсь разобраться с DDD, и на данный момент у меня есть некоторые доменные классы и репозитории.
public class Entity1
{
public int SomeValue {get;set;}
public ICollection<Entity2> SomeEntities {get;}
public void SomeMethod ();
}
public class Entity1Repository
{
public void Add (Entity1 entity) {...}
...
}
У меня также есть интерфейс единицы работы
public interface IUnitOfWork
{
void Commit ();
void Rollback ();
}
Не совсем убежден, что IUnitOfWork должен быть передан конструктору хранилища, как мне кажется, по крайней мере, мне кажется, что он делает хранилище не столь неосведомленным о постоянстве.события домена, отправленные из объектов домена, чтобы указать, что они изменены.Единица выполнения работы и, почему нет, хранилище будет прослушивать эти события и действовать соответственно.
Кроме того, я думал о том, чтобы реализация коллекции ICollection отправляла также какое-то событие.
Эта схема избавит пользователя от доменного уровня от необходимости возиться с хранилищем.
Это звук?