DDD:Repository和UnitOfWork的生命周期问题

时间:2023-03-09 04:30:25
DDD:Repository和UnitOfWork的生命周期问题

UnitOfWork

UnitOfWork是一种有状态的用例级别的对象。如果不采用ORM是不会使用UnitOfWork模式的,

Repository

Repository是一种特殊的领域服务,因此是无状态的全局单例的。

Repository和UnitOfWork之间的关系

在一个用例中,一个UnitOfWork为多个Repository提供服务,也就是说Repository依赖UnitOfWork,但是无状态对象不能依赖有状态的对象,因此我们需要引入另外一个类型:UnitOfWorkFactory,该工厂是一种特殊的服务(无状态、全局单例),它保证创建会话级别的UnitOfWork。