我正试图了解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的集合实现发送一些事件。
此方案将解析域层用户对摆弄存储库的需求。
这听起来好吗?