Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Domain driven design 是否在子实体中引用另一个聚合根?_Domain Driven Design - Fatal编程技术网

Domain driven design 是否在子实体中引用另一个聚合根?

Domain driven design 是否在子实体中引用另一个聚合根?,domain-driven-design,Domain Driven Design,我想在DDD的帮助下对订单和产品概念进行建模,但我想知道如何处理它 假设您有一个Order类,它的子类是OrderItem类,Order是聚合根,Order类有OrderItems列表,每个OrderItem都有对Product类的引用。产品当然是聚合根。 我是说像这样的事情: public class Order{ ... public list<OrderItem> OrderItems {get;set;} } public class OrderItems{ ... pub

我想在DDD的帮助下对订单和产品概念进行建模,但我想知道如何处理它

假设您有一个Order类,它的子类是OrderItem类,Order是聚合根,Order类有OrderItems列表,每个OrderItem都有对Product类的引用。产品当然是聚合根。 我是说像这样的事情:

public class Order{
...
public list<OrderItem> OrderItems {get;set;}
}

public class OrderItems{
...
public int Qty {get; set;}
public Product {get; set;}
}

public class Product{
...
}
但据我所知,我无法从订单集合的子集合引用到产品集合。如何应对

Tnx在前进。

在书的第202页,你可以看到一幅图像。有各种各样的有界上下文,其中两个与您需要的内容非常相似。Order是聚合根,其子级为Order Detail。订单细节反过来又与产品有关系,产品是不同有界上下文中聚合的聚集根

所以第一个想法是产品属于订单集合。 然而,接下来您可能会发现存在用于处理产品的用例 订单之外,例如产品目录。这使得 这是另一个植根于产品的群体

所以。。。是的,即使在不同的有界上下文中,聚合的子级也可以持有对另一个聚合根的引用

这是正确的选择吗?在这种情况下,正确的答案总是:视情况而定。 凭什么?关于业务规则,以及如何处理将被另一个更大的聚合订单吞噬的聚合