我正在创建一个应用程序来分析我的费用。我想以DDD方式实施。我的2个主要实体是:对方部分(收件人/发件人)和费用(成本/收入)
[将CounterPart作为总根似乎是合乎逻辑的,但我需要直接对Expense进行很多操作,就像将其标记为每日,每月或......支出。
我只能使用counterPart付费进行互动吗?
Aggreggate Root
中的DDD
由您的业务需求决定。在确定您的总根之前,您需要对业务有很好的了解。
在您的情况下,CounterPart
和Expense
之间存在一对多的关系。 Expense
可以存在于CounterPart
之外吗?如果不是,那么将CounterPoint
作为您的Aggreggate Root
可能很有意义。
如果需要操纵Expense
,则需要在AddExpenseToCounterPart
上公开诸如SetExpenseToDaily
,CounterPart
等操作。
但是,如果您的Domain
很简单(或anaemic
)却没有任何复杂的业务规则。我会问为什么还要使用DDD?