跨域

2014-02-24 85 views
1

找到聚合根用法作为事实上,实体甚至值对象可能包含总根引用。 另外是根据定义,总结罗茨站在自己,在本质上有一个,我不是在最后可以删除聚合根跨域

作为我的GUI /工作流程的一个要求,客户希望看到特定聚集根被引用的位置,这不仅仅是因为他想要/应该能够检查他是否能够“安全地”删除该AR。

我目前的设计只有导航从实体另一个AggregateRoot,所以目前没有简单的方法来找到相反的方向。

由于这肯定不是一个单一的案例,我想知道这通常是如何完成的?

附录:

考虑下面的例子;我们有一个Address作为实体,以及含有dateAddress address一个值对象HomeVisit(只是为了简单)。 到目前为止,没有建模需要能够从Address导航到HomeVisit,甚至更多,因为通常不鼓励双向关联。 但现在你应该看到用例了:出于某种原因,我可能需要能够在删除或修改之前找出当前使用的Address的位置(也许服务技术人员正在前往该地址的路上,而我需要意识到这一点)。

你可以争辩说,对于这些情况必须有一个服务或类似地发现了,但是想象一下,有哪所带来的HomeVisitVO和利用了Address莫名其妙匿名的第三方模块;至少这是我希望它实现的方式。

回答

0

看起来答案似乎是:通过域或应用程序服务,涉及各自的存储库,而必要的。

因此,对引用的检查必须用AddressService进行硬编码,其方法如deleteAddressByIdentifier。然后这个方法需要检查或者调用一个方法isTechnicianOnWayToAddress(),它再次查询存储库;或任何需要实现的目标。