我有一个实体,Exchange。Exchange 需要在启动时填充 VO 列表 CurrencyPair。CurrencyPair 的集合作为主数据存储在数据库中,并有一个名为 ICurrencyPairRepository 的存储库来获取所有可用的货币对。因此,一旦应用启动,我希望在 Exchange 实体中获取 CurrencyPair 集合。
我的问题是,我可以直接将 ICurrencyPairRepsoitory 的实现注入到 Exchange 中吗?还是应该有一个从存储库中获取 CurrencyPairs 的基础设施服务实现?(当然,ICurrencyPairRepository 接口在域层内部,它的实现在基础设施层)
还是应该在 Exchange 中注入应用程序服务?我们是否允许仅将域服务注入实体或其他服务/存储库也可以注入?
用例:
在启动时,交易所需要获取应用程序中允许交易的所有货币对。每当有新订单进入交易所时,它都会包含它想要交易的货币对。交易所随后需要检查该货币对是否允许交易。如果是,则转发该订单,否则,丢弃该请求。
由于 Exchange 是一个聚合根,我可以从应用程序启动的位置对其进行初始化,并为其提供一组货币对,但我很想知道允许在本例中也是聚合根的实体中注入什么.