我正在重组我当前的项目,以更好地符合 DDD 最佳实践。
作为此设置的一部分,管理任务允许基于配置文件/算法组合(重新)引导某些域对象/聚合。我对此有一个很好的用例,它确实要求它成为实时系统的一部分,而不是仅用于测试(例如文本固定装置)。
我正在努力如何在 DDD 上下文中最好地模型重构:
基本上:构建器/引导程序是属于与域对象相同的有界上下文的基础设施服务吗?这会感觉很自然吗?我看到的流程是管理员使用特殊的管理应用程序服务访问这些功能,该服务反过来调用构建器来完成他们的工作。
另一方面,这个管理功能感觉像是系统的一个独立部分,所以也许我不应该用支持引导的方法污染域对象(或其工厂)。IOW:这可能意味着一个单独的有界上下文,具有完全不同的(无逻辑)域模型,纯粹用于持久化到数据库。然而,这对我来说并不是很干燥,因为我最终可能会定义两次模型(每个 BC 一次)
解决此问题的最佳方法是什么?