【发布时间】:2013-05-20 18:24:48
【问题描述】:
我正在开发一个存在以下要求的应用:
- 用户在表单中提交了一些数据,这些数据将作为“草稿副本”保存下来。
- 在另一端,审批者阅读并采取一些措施(批准、拒绝等)
- 如果批准人批准草稿副本,则它成为合同,双方具有法律约束力。原始提交者可以返回并更改草稿副本,然后重新提交。当审批者批准最新版本时,现有合同将替换为新合同。
我正在努力解决的是我们试图在我们的项目中使用 DDD,但没有任何解决方案真正“感觉正确”。我们都对现代 DDD 缺乏经验,因此找到正确的模型非常令人困惑。
这不是文档管理问题。提交者始终只使用一个草稿副本,有时会有任何一方都无法编辑的合同(通过重新提交带有更改的草稿副本来执行编辑)。出于这些目的,这两个领域概念中的字段是相同的。
是否有一些设计模式或 DDD 友好的解决方案可以在这里应用?
【问题讨论】:
-
现在我们只是在讨论设计选项。我们正在考虑三件事: 将合同附加到 DraftCopy;将 DraftCopy 作为值对象保留在 Contract 中,而不是真正使用任何特定的 DDD 技术,而只是将两个对象与某种公共 ID 相关联。
标签: c# architecture domain-driven-design