这是聚合根。收件人还是成本? DDD

Which is aggregate root. Recipient or Cost ? DDD

我正在创建一个应用程序来分析我的开支。我想以 DDD 方式实现。 我的 2 个主要实体是: CounterPart(Recipient/Sender) 和 Expense(Cost/Income)

class diagram

将 CounterPart 作为聚合根似乎合乎逻辑,但我需要直接对 Expense 执行很多操作,例如将其标记为每日、每月、...费用。

我可以只使用 counterPart 付费互动吗?

您在 DDD 中的 Aggreggate Root 是由您的业务需求驱动的。在确定聚合根之前,您需要对业务有很好的了解。

在您的例子中,CounterPartExpense 之间存在一对多关系。 Expense 可以存在于 CounterPart 之外吗?如果不是,将 CounterPoint 作为您的 Aggreggate Root 可能是有意义的。

如果您需要操纵 Expense,则需要在 CounterPart.

上公开 AddExpenseToCounterPartSetExpenseToDaily 等操作

但是,如果您的 Domain 很简单(或 anaemic),没有任何复杂的业务 rules.I 会问为什么还要选择 DDD?