1

嗨,我正在尝试对一个简单的类集群进行 DDD。

举个例子。

我有渠道和贷方。

渠道 = 渠道 A、渠道 B 贷方 = 银行 A、银行 B、银行 C

通道 A 有银行 A、B 通道 B 有银行 B、C

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

聚合 id 应该是银行特定的吗?还是应该是特定于频道的?

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

在我看来,我可以将 Channel 设为聚合根实体,或将 Bank 设为聚合根实体,这不会有什么不同吗?他们是一对一的关系。

或者我应该创建一个顶级类作为根并引用 Channel 和 Bank?

有什么建议吗?

4

1 回答 1

1

聚合设计总是很棘手,你对领域的了解越多,它就会变得越容易。对于一个局外人来说,帮助是相当困难的(或不可能的):)

但请记住,这不一定是“哪一个是聚合?”的问题。在您的情况下,很可能两者都是聚合,并且您通过值对象 (VO) 或 Id 将它们链接起来。例如,您可以Channel使用ChannelLenderVO,并且在您拥有Channel/Bank链接的那些“其他”聚合中,您可以使用其他一些 VO,并且由于ChannelLender已经使用过,您需要使用代表该概念的通用语言 (UL) 中的某个名称。

希望这会有所帮助。

于 2013-10-29T04:18:44.683 回答