gpt4 book ai didi

architecture - 在域驱动设计中将通用序列化类放在哪里?

转载 作者:行者123 更新时间:2023-12-04 05:20:32 25 4
gpt4 key购买 nike

我试图在我的设计中遵循 DDD 原则,并且我试图保持我的域实体干净。我必须创建序列化程序类(它使用 json.net),但我不知道把它放在哪里。
我考虑了以下选项:

  • 创建一个公用事业项目很容易,但它只会让洋葱的价格飙升。
  • 它有点类似于存储库,因为它包含实际实现并具有依赖关系(就像 repo 使用 EF),但它不存储对象,只是转换它。
  • 它不是域服务,因为它不包含业务逻辑
  • 把它放到像应用程序或 UI 这样的外层对我来说没有太大意义。

  • 这是我的项目结构:

    网络

    应用

    域服务

    存储库

    领域模型

    最佳答案

    如果您使用洋葱架构,则意味着您使用接口(interface)来避免从中间环到外部基础架构的硬依赖;并且实际的实现是在运行时注入(inject)的。

    序列化功能是一个基础设施问题,所以逻辑属于那里,但是从你的领域层你可以针对它的接口(interface)进行编程,所以你不依赖于实际的序列化实现,这是洋葱架构的整个想法:如果稍后序列化方法发生变化,它只影响基础设施层。

    关于architecture - 在域驱动设计中将通用序列化类放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36526966/

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