工厂模式实现 class 位于 DDD 的干净架构中的什么位置

Where does a Factory pattern implementation class reside in clean architecture for DDD

我正在尝试使用具有以下三种项目类型的解决方案来遵循 DDD 的干净架构:

我有一个实现接口 IMapperFactory 的工厂 class MapperFactory,其中 returns 一个基于 MapTypeIMapperService 传入该工厂。 IMapperService 的实现位于核心层。

我正在努力理解工厂实现 classes 应该驻留的位置。我所有的存储库都在基础设施项目中实现,但域服务是在核心项目中根据干净的架构指南实现的(至少我是如何阅读它们的)

我觉得工厂的实现应该在核心项目中,因为那是它需要创建的所有实现所在的地方,但不确定。如果它应该在核心项目中,那么它应该是什么类型的对象,因为它不是实体、服务或接口?

MapperFactory 的目的是什么?

如果您的 MapperFactory 将数据库对象映射到(和从)域对象,那么它们应该转到 Infrastructure 项目(因为您的存储库实现驻留在那里)。

如果您的映射器将域对象映射到(和从)视图模型,那么它们驻留在 API 项目中。

如果您的模型驻留在 Core 服务中,例如您不想将您的域暴露给外界,并且您在服务中有一些 Contracts 可以与外部世界通信,那么您的 MapperFactory 应该位于 Core 中(假设 MapperFactory 将域映射到(和从)Contracts.