抱歉天真的问题;我还在努力了解DDD。假设我有IOrderService
。这是我的方法GetNewOrderID
吗?或者,我想更一般地说,在DDD场景中分配新订单的正确方法是什么?
答案 0 :(得分:0)
除非我误解了DDD,否则这不是一个天真的问题 - 相反,当不清楚该域名的责任在哪里被调查/理解时。比如:
这些要求中的一个或多个可能会澄清情况。
答案 1 :(得分:0)
我喜欢听商家使用的词语。例如,如果他们谈论目录订单和电话订单都是订单来源,我可能会有一个OrderSource或IOrderSource而不是OrderService--最后一个是代码发言而不是商务发言。我可能有两个实现,或者只是一个使用标识符来说“这是来自手机”,具体取决于进程的不同。
如果商务人士谈论从他们的服务获取ID,那么是的,那样做。更有可能的是,他们谈论从OrderSource接收订单,将其分派到Warehouse或创建OrderForm并接收ReferenceNumber。 ReferenceNumber可能是主键,但它可能不是Id。
业务使用的语言可以指导您编写与其流程相匹配的软件。保持易于更改的内容,并帮助您发现是否存在可以使用某些学习的域的某个方面。设计模式与您习惯的完全相同;如果业务有更好的条款,我就不会在我之后调用我的代码。看DDD的无所不在的语言,祝你好运!