gpt4 book ai didi

domain-driven-design - 工厂模式实现类在 DDD 的整洁架构中位于何处

转载 作者:行者123 更新时间:2023-12-04 01:39:13 25 4
gpt4 key购买 nike

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

  • MyProject.Core(实体、接口(interface)和服务)
  • MyProject.Infrastructure(存储库、事件总线、记录器、工厂???)
  • MyProject.API( Controller )

  • 我有工厂类 MapperFactory实现接口(interface) IMapperFactory返回 IMapperService基于 MapType传入工厂。 IMapperService 的实现驻留在核心层。

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

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

    最佳答案

    MapperFactory的目的是什么?

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

    如果您的映射器将域对象映射到(和从) View 模型,那么它们位于 API 项目中。

    如果您的模型位于 Core服务,例如您不想将您的域暴露给外部世界并且您有一些 Contracts在与外部世界通信的服务中,然后您的MapperFactory应位于 Core 内(假设 MapperFactory 将域映射到(和来自)Contracts

    关于domain-driven-design - 工厂模式实现类在 DDD 的整洁架构中位于何处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58252771/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com