这可能更多的是个人喜好,但我一直试图使用“存储库”和“工作单位”模式来解决问题,但是我看到了非常不同的用途,并且想知道哪个“更好”以及为什么。
用途1:
在此用途中,将存储库放入工作单元
用途2:
在此用途中,将工作单元放入存储库中
情况很复杂。首先从我对存储库的简单解释开始。接下来,UoW概念被过度使用和滥用。考虑到存储库,与聚合一起使用的DDD方法意味着存储库封装了一个UoW,因为聚合根中的所有内容都必须作为一个整体持久化。在数据库级别,UoW只是意味着使用事务,并且即使多个存储库使用同一事务,这也适用于多个存储库。
但是,在大多数情况下,这是错误的设计,因为它通常仅适用于非分布式应用程序,并且需要某些符合ACID的存储。尽管这可能是您的情况,但您使用的是“存储库”模式,这意味着您希望应用程序对持久性无知,这意味着您的应用程序不应该知道UoW,这是一种在持久性内部可用的模式(通过ORM或直接通过数据库交易)。
因此,我想说的“正确”答案是:存储库可以使用UoW实现,具体取决于特定的需求。如果您使用的是ORM,则会自动使用UoW。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句