我记得在埃里克·埃文斯(Eric Evans(关于DDD的书中,如果一个实体只能用其他实体(聚合的根(来理解,那么就让它成为一个"普通"实体(AR的成员(。
我的问题:"可以自己理解"到底是什么意思?我应该问自己什么问题才能知道一个实体是否可以独立理解?
我的问题:"可以自己理解"到底是什么意思?
如果它可以单独创建,或者必须在另一个上下文中创建。
我应该问自己什么问题才能知道一个实体是否可以独立理解?
"如果我直接修改该实体,或者实际上我需要进行检查(即 if
语句(对其他相关实体集合的计算,以确保验证特定的业务规则?
另一个问题是:"我是否拥有此实体中的所有信息来验证所有业务规则?
如果你有一个类,除了成为另一个类的一部分之外没有理由存在,那么它就不是AR。 原型例子是Order
和Orderitem
。 您永远不想跟踪生命周期OrderItem
。 实际上,您可能希望将OrderItem
建模为值对象。 不过,在您的领域中,并非所有这些概念都一定那么明显。
至于你链接到的Udi的帖子:能够从另一个创建AR将取决于该AR是你的界定上下文的一部分。 此外,我现在更喜欢从我的域中返回事件,而不是从域内引发它们。