【发布时间】:2010-08-03 16:05:52
【问题描述】:
抱歉这个幼稚的问题;我仍在努力理解 DDD。假设我有一个IOrderService。这是我有方法GetNewOrderID 的地方吗?或者,我想更笼统地说,在 DDD 场景中分配新订单的正确方法是什么?
【问题讨论】:
抱歉这个幼稚的问题;我仍在努力理解 DDD。假设我有一个IOrderService。这是我有方法GetNewOrderID 的地方吗?或者,我想更笼统地说,在 DDD 场景中分配新订单的正确方法是什么?
【问题讨论】:
除非我误解了 DDD,否则这不是一个幼稚的问题 - 相反,当不清楚责任在哪里时,则没有足够的域被调查/理解。比如:
这些要求中的一项或多项可能会澄清情况。
【讨论】:
我喜欢听企业使用的话。例如,如果他们谈论目录订单和电话订单都是订单的来源,我可能有一个 OrderSource 或 IOrderSource 而不是 OrderService - 最后一个是 code-speak 而不是 business-speak。我可能有两种实现,或者只有一种使用标识符来表示“这是来自电话”,具体取决于流程的不同。
如果业务人员谈论从他们的服务中获取 ID,那么是的,就这样做。更有可能的是,他们谈论从 OrderSource 接收订单,将其发送到仓库或创建 OrderForm 并接收 ReferenceNumber。这个 ReferenceNumber 很可能是主键,但它可能不是 Id。
业务使用的语言可以指导您编写与其流程非常匹配的软件。使事情易于更改,并帮助您发现领域的某个方面是否可以使用一些学习。设计模式与您习惯的完全一样;如果业务有更好的条款,我只是不会在这些之后调用我的代码。看看 DDD 的通用语言,祝你好运!
【讨论】: