我对ddd和有界上下文有疑问。
假设有两个有界上下文。在第一个中,聚合根是能够在网页上发布广告的客户。我想这属于他的行为,反过来他有一个 PublishAdvertisement() 方法。但是第二个有界上下文将广告作为聚合。由于广告属于客户的性质,这就要求广告具有客户属性。
客户和广告在系统和数据库中都是唯一的。
我的问题是:将广告的创建从客户委托给工厂或依赖注入是否可取?
编辑:
我感谢您的回答,并为缺乏信息而道歉。
依赖注入:
我想知道解决特定情况的最佳方法是什么。该公司有广告模板库存,如果模板有库存,则可以使用,如果没有,则将其租给某人。该公司计划拥有更多股票。如果客户想在这些模板中制作广告,他会选择一个模板,如果它有库存,一切都很好。阅读本文时,我假设应该有一个服务(域)CheckAvailability(模板),由于服务的性质,它不适合特定的聚合,因为它使用了多个带有验证的聚合并查询数据库。将来会有更多的 Stocks(一些是从其他公司租来的,可能是其他人的数据库),我打算使用依赖注入将这些 Stocks 添加到服务中而不更改实现。
有界上下文:
关于有界上下文和数据库。是的,有一个数据库对象和两个使用相同数据库对象的上下文。由于属于客户,订单有对客户的引用,看起来像这样
Order() 客户 customer(get; private set;)
///其他属性和方法
我将不胜感激通过链接、视频、书籍提供的任何其他信息,这些信息涉及到 2 个这样的上下文(客户->订单___1:M)与同一个数据库相关的含义。谢谢你。