2

我想知道如何正确建模我的聚合。域是会计,我有三个实体:Account、AccountingEntry(这应该是一个值对象吗?)和AccountingTransaction。该帐户可以说是客户的银行帐户。AccountingEntry 是帐户中的一个条目,AccountingTransaction 将构成单个事务的多个条目联系起来(例如,从帐户 A 转移到帐户 B)。一起。

我的想法是将 Account 和 AccountingTransaction 建模为聚合,AccountingEntry 建模为 AccountingTransaction 中的集合。这是为了允许会计交易汇总执行不变量,即交易中的所有条目必须总和为零。这些条目将包含对其关联帐户 ID 的引用(如果我们想撤销交易,这将很有用)。这些账户不会保存对条目的任何引用,但会保留余额。

我会使用 saga 来管理以交易方式记入和借记帐户的过程。

我想知道我是否正确地建模。

我还想知道如何确保无法创建包含对无效(不存在)帐户的引用(ID)的会计条目。该帐户是否应该用作创建条目的工厂,并传入它自己的 ID?

4

1 回答 1

0

我觉得模型挺好看的。根据 Martin Fowler 的会计模式,您可以使用 Transaction 作为条目的工厂(使用 Account 作为参数) 。

于 2013-08-03T03:16:29.617 回答