Domain Driven Design聚合根设计

时间:2013-10-29 00:31:54

标签: c# oop domain-driven-design aggregate

您好我正在尝试在一个简单的类集群上进行DDD。

举个例子。

我有渠道和贷方。

频道=频道A,频道B. 贷方=银行A,银行B,银行C

频道A有A银行,B B频道有B银行,C

在这种情况下,我如何设计我的聚合根?

汇总ID应该是银行特定的吗?或者它应该是特定渠道?

在我的其他聚合中,我只想知道它是ChannelA-BankA还是ChannelB-BankC,也就是一个唯一的ID。

我看到它的方式,我可以将Channel设为聚合根实体,或者将聚合根实体设为Bank,它不会有所作为?他们是一对一的关系。

或者我应该创建一个顶级类作为根并引用频道和银行?

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

总体设计总是很棘手,你越了解域越容易。对于外人来说,帮助是相当困难的(或不可能的):)

但请记住,这不一定是“哪一个是聚合物?”的问题。在你的情况下,很可能两者都是聚合,你通过值对象(VO)或ID链接它们。例如,您可以Channel使用ChannelLender VO,而在那些“其他”聚合中,如果您有Channel / Bank链接,则可以使用其他一些VO,已使用ChannelLender您需要来自您的泛在语言(UL)的名称来代表该概念。

希望有所帮助。