订单ID在哪里分配?

时间:2010-08-03 16:05:52

标签: c# domain-driven-design

抱歉天真的问题;我还在努力了解DDD。假设我有IOrderService。这是我的方法GetNewOrderID吗?或者,我想更一般地说,在DDD场景中分配新订单的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

除非我误解了DDD,否则这不是一个天真的问题 - 相反,当不清楚该域名的责任在哪里被调查/理解时。比如:

  • 订单ID的格式是什么, 什么信息变成一个单一的 订单ID。
  • 是否有要求 得到任何东西 一个新的OrderID - 就像谁请求的那样 它等。
  • 是否有要求 请求但未使用的订单ID 被释放?

这些要求中的一个或多个可能会澄清情况。

答案 1 :(得分:0)

我喜欢听商家使用的词语。例如,如果他们谈论目录订单和电话订单都是订单来源,我可能会有一个OrderSource或IOrderSource而不是OrderService--最后一个是代码发言而不是商务发言。我可能有两个实现,或者只是一个使用标识符来说“这是来自手机”,具体取决于进程的不同。

如果商务人士谈论从他们的服务获取ID,那么是的,那样做。更有可能的是,他们谈论从OrderSource接收订单,将其分派到Warehouse或创建OrderForm并接收ReferenceNumber。 ReferenceNumber可能是主键,但它可能不是Id。

业务使用的语言可以指导您编写与其流程相匹配的软件。保持易于更改的内容,并帮助您发现是否存在可以使用某些学习的域的某个方面。设计模式与您习惯的完全相同;如果业务有更好的条款,我就不会在我之后调用我的代码。看DDD的无所不在的语言,祝你好运!