客户在域模型中订购或订购客户

时间:2010-02-25 03:38:08

标签: oop domain-driven-design

我正在阅读这本书Applying-Domain-Driven-Design-Pattern

在其模型设计中,它具有对客户的订单保留参考,但如果是我进行设计,我可能会让客户保留对订单的引用。

那么,问题是,在设计单向关系时,如何确定方向?

3 个答案:

答案 0 :(得分:4)

我认为如果这是一个订单处理系统,其中订单是操作级别的概念,而客户提供了如何处理订单的上下文,那么OrderService需要让订单引用订单的客户。另一方面,正如其他人所指出的那样,可以向客户查询其订单。这可以在服务台的客户服务系统中进行。在这种情况下,我可以看到CustomerService需要客户拥有多个订单。

答案 1 :(得分:1)

这个问题的答案是由应用程序的功能驱动的。如果您需要按客户查询订单,那么您的方法是正确的。但是,如果按订单查询客户,则模型设计是正确的。

如果您需要同时执行这两项操作,那么它就是双向关系,您可以选择将其建模为多对多关系。

答案 2 :(得分:1)

结构有一定的功能。

也就是说,想一想你的课程将如何使用。是否会询问客户的订单?是否会为客户查询订单?如果两者兼而有之,则需要双向关系。