【问题标题】:Validation in AKKA.NETAKKA.NET 中的验证
【发布时间】:2015-05-11 02:20:27
【问题描述】:

我有一个名为 OrderActor 的参与者,它是为客户创建的订单。我有一条验证规则说如果产品是计算机,则只允许一个项目。每当 OrderActor 收到添加产品的消息时,都应应用此规则。

我的问题是关于验证。我是否应该有一个名为 OrderValidatorActor 的新演员,并且需要将 OrderActor 作为父演员?在这种情况下,事件流应该是 OrderActorOrderValidatorActor 发送消息,OrderValidatorActor 在验证后将响应发送回 OrderActor .

请指导如何处理验证?

【问题讨论】:

  • 为什么不能直接在OrderActor中验证这条规则?
  • 验证通常是一个业务规则。它可以被视为一个规范,如果它是一个单独的单元(关注分离),则可以单独测试。这就是我考虑 OrderValidatorActor 的原因。

标签: akka.net


【解决方案1】:

这个怎么样?

  1. 在您的 OrderActor 中接收 RequestAddItem 消息。
  2. OrderActorValidateOrderItem 消息中将项目详细信息发送给 OrderValidatorActor
  3. OrderValidatorActorOrderActor 发送 AddValidatedItemDenyInvalidItem 消息。

【讨论】:

    【解决方案2】:

    基于角色/职责的面向对象编程原则也适用于角色建模。因此,验证的责任在 OrderValidatorActor 中完成。

    【讨论】:

      猜你喜欢
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多