小编Ton*_*imo的帖子

DDD 存储库可以是有状态的吗?

我\xe2\x80\x99m 设计一个运输应用程序并尝试使用清洁架构。我\xe2\x80\x99m 试图找出在哪里保存Shipment 对象的状态,以便每次用户单击UI 中的按钮时\xe2\x80\x99t 都必须重新实例化一个新对象。这是流程。

\n\n
    \n
  1. 用户在 UI 中输入送货号码
  2. \n
  3. UI 控制器处理 UI 事件并实例化用例交互器的实例\n a。存储库实例被传递到用例交互器的构造函数中
  4. \n
  5. 用例交互器通过调用工厂(例如CREATE_BY_DELIVERY)来实例化Shipment 的实例。工厂调用Repository从数据库收集数据。
  6. \n
  7. 交付数据填充在 UI 上
  8. \n
  9. 然后用户单击“报价”按钮
  10. \n
  11. UI 控制器处理按钮单击事件并调用用例交互器的 RATE_QUOTE 方法\na。用例交互器是否需要像步骤 #3 中那样再次调用 Shipment 工厂,或者用例交互器是否可以获得步骤 #3 中已创建的 Shipment 对象的实例?
  12. \n
  13. 费率显示在 UI 上
  14. \n
  15. 然后用户单击“处理发货”按钮
  16. \n
  17. UI 控制器处理按钮单击事件并调用用例交互器的 PROCESS_SHIPMENT 方法\na。用例交互器是否需要像步骤 #3 中那样再次调用 Shipment 工厂,或者用例交互器是否可以获得步骤 #3 中已创建的 Shipment 对象的实例?
  18. \n
\n\n

发货对象的状态应该是 UI 控制器、用例交互器还是存储库上的实例变量吗?理想情况下,我想将其保存在某个地方,这样我就不需要每次用户单击 UI 上的按钮时都创建一个新对象。

\n\n

先感谢您!

\n

domain-driven-design ddd-repositories hexagonal-architecture clean-architecture

4
推荐指数
1
解决办法
1771
查看次数

域实体应该调用存储库吗?

我正在设计一个运输应用程序,并尝试使用Clean Architecture和DDD。在域层的核心深处,我们有许多可配置的业务规则。例如,有一些业务规则用于确定货运的最佳承运人,确定运输方式,确定付款类型等。每个业务规则都会从数据库中选择数据,因此我打算使用BizRule存储库。问题是,根据我对DDD原理的理解,域实体(例如,货件)不应调用存储库(例如,BizRuleRepository)。用例层应该是调用存储库的那一层。如果我采用这种方法,那么我将不得不将许多复杂的业务规则移至用例层,我​​不确定这是否是最佳方法。在这种情况下,设置例外并让域实体调用存储库是否有意义?先感谢您。

domain-driven-design ddd-repositories clean-architecture

3
推荐指数
1
解决办法
1047
查看次数