design-patterns - 为什么存储库不应该包含事务逻辑?

标签 design-patterns architecture transactions domain-driven-design

拥有一个设计良好的域,具有不相互引用的聚合,明确定义的边界和具有明确定义的对象引用的聚合对象,为什么在存储库中具有事务逻辑是一种不好的做法(为每个域创建一个存储库目的)?

在回答 UoW 模式之前,请考虑这个问题 UoW limitation .

最佳答案

因为典型的事务通常跨越多个存储库。当您在同一笔交易中出售您想要的产品时,

  • 减少库存中的元素数量 (StockRepository)
  • 创建订单(OrderRepository)
  • 创建装运(ShipmentRepository)

而且您真的希望所有这些要么成功要么失败。

关于design-patterns - 为什么存储库不应该包含事务逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20640605/

相关文章:

android - 如何使用媒体 Controller 上的后退按钮反转 fragment 事务?

java - Apache ActiveMQ Camel 事务处理回滚

java - 使用数据动态创建对象和群体

java - MVC 模型适合基本的纸牌游戏吗?

java - 使用 JFrame 的图形应用程序设计模式

database-design - 我应该为多客户端应用程序使用单个还是多个数据库设置?

c++ - 您使用 Qt 模型- View 架构的首选模式是什么?

php - 将数据从一个 MySQL 表传输到另一个

c# - 防止未分配对象的设计模式

design-patterns - 领域驱动设计和工厂类的作用