我想知道如何正确建模我的聚合。域是会计,我有三个实体:Account,AccountingEntry(这应该是一个值对象吗?)和AccountingTransaction。该帐户可以说是客户的银行帐户。 AccountingEntry是帐户中的条目,AccountingTransaction将构成单个交易的几个条目联系起来(例如,从帐户A转帐到帐户B)。在一起。
我的想法是将Account和AccountingTransaction建模为聚合,将AccountingEntry建模为AccountingTransaction中的集合。这是为了允许会计事务聚合强制执行不变量,该不变量表示事务中的所有条目必须总和为零。这些条目将保留对其关联帐户ID的引用(如果我们想要撤销交易,这将非常有用)。帐户不会对条目有任何引用,但会保持余额。
我会用一个传奇来管理账户贷记和借记账户的过程。
我想知道我是否正确建模。
我还想知道如何确保无法创建会将参考(ID)保存到无效(不存在)帐户的会计分录。该帐户是否应该用作创建条目的工厂,传入它自己的ID?
答案 0 :(得分:0)
我觉得这个模型很不错。根据Martin Fowler的Accoutning Pattern,你可以使用Transaction作为Entry的工厂(使用Account作为参数)。