这是聚合根。收件人还是成本? 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
是由您的业务需求驱动的。在确定聚合根之前,您需要对业务有很好的了解。
在您的例子中,CounterPart
和 Expense
之间存在一对多关系。 Expense
可以存在于 CounterPart
之外吗?如果不是,将 CounterPoint
作为您的 Aggreggate Root
可能是有意义的。
如果您需要操纵 Expense
,则需要在 CounterPart
.
上公开 AddExpenseToCounterPart
、SetExpenseToDaily
等操作
但是,如果您的 Domain
很简单(或 anaemic
),没有任何复杂的业务 rules.I 会问为什么还要选择 DDD?
我正在创建一个应用程序来分析我的开支。我想以 DDD 方式实现。 我的 2 个主要实体是: CounterPart(Recipient/Sender) 和 Expense(Cost/Income)
class diagram
将 CounterPart 作为聚合根似乎合乎逻辑,但我需要直接对 Expense 执行很多操作,例如将其标记为每日、每月、...费用。
我可以只使用 counterPart 付费互动吗?
您在 DDD
中的 Aggreggate Root
是由您的业务需求驱动的。在确定聚合根之前,您需要对业务有很好的了解。
在您的例子中,CounterPart
和 Expense
之间存在一对多关系。 Expense
可以存在于 CounterPart
之外吗?如果不是,将 CounterPoint
作为您的 Aggreggate Root
可能是有意义的。
如果您需要操纵 Expense
,则需要在 CounterPart
.
AddExpenseToCounterPart
、SetExpenseToDaily
等操作
但是,如果您的 Domain
很简单(或 anaemic
),没有任何复杂的业务 rules.I 会问为什么还要选择 DDD?