我目前正在研究发布有界上下文。这方面的主要参与者是Product和Listing。
产品:可以在多个市场上市。一品多上市。
列表:可以有很多产品,因为一些市场支持变体列表。一上市多产品。
基于以上内容,我在Listing和Product之间建立了多对多的关系。
我为两者创建了一个聚合。包含列表的产品聚合和包含产品的列表聚合。
在两个聚合中定义列表是否可以接受,或者我应该定义一次列表以在两个聚合中使用?
第一个列表将在产品聚合中,因为产品 AR 具有在创建列表时强制执行规则的工厂方法(例如避免在同一市场中重复列表并确保我们有用于列表的库存数量)
第二个列表将是一个聚合根,它可以包含发布时需要的许多产品的信息。通过这种方式,我可以在列表上创建方法以将其映射到不同市场(例如 Ebay 和亚马逊)提供的模式定义。此外,我希望能够独立于同一产品中的列表保留列表。
这两个聚合是否与重复定义有太多重叠?这是在一个有限的上下文中预期的吗?
另外,我怎样才能保持列表的重复表示彼此同步?