我已阅读此内容,这让我三思...
"避免使用工作单元模式。聚合根应该定义事务边界。"
为什么在应用领域驱动设计时应该避免使用工作单元模式?
我已阅读此内容,这让我三思...
"避免使用工作单元模式。聚合根应该定义事务边界。"
为什么在应用领域驱动设计时应该避免使用工作单元模式?
在我发帖之前,我建议先阅读V. Vernon的《实现领域驱动设计》书中的这一章。它可以帮助你更好地了解聚合,并对你的问题有详细的回答。
在一个正确设计的系统中,每个命令只会改变一个聚合,每个聚合都有由聚合根中的不变量定义的边界。因此,当您对聚合进行任何更改时,会检查不变量并在一个事务中应用(或不应用)更改。这是“事务一致性”。在这里需要使用工作单元吗?我认为不需要。
但很多时候我们会遇到需要同时更改多个聚合的情况。事务变得更大,它们涉及系统的多个部分,我们谈论的是“最终一致性”。在这种情况下,UoW是一个很好的助手。
由于没有上下文,很难猜测作者的想法,但我认为他提到了事务一致性的情况。在分布式系统中,您需要使用类似于UoW的东西来为系统提供最终一致性。
这些提供了准备好DDD(和大量注释的;])实体。