【问题标题】:save,progress,DDD,Entity保存,进度,DDD,实体
【发布时间】:2011-02-03 13:15:54
【问题描述】:

我是域驱动设计的新手。我有一个 Web 应用程序,用户可以在其中通过任务保存进度的中间结果,即将表单上的数据另存为草稿,然后再回来填写。如果表单表示一个实体及其聚合的根,是否可以根据状态将实体保存在半生不熟的状态?

【问题讨论】:

    标签: domain-driven-design entity save progress


    【解决方案1】:

    视情况而定,对此确实没有正确的通用答案。

    虽然可以走这条路,但它可能会干扰我倾向于遵循的另一个原则,即没有域对象可以处于无效状态。

    由于您子系统的域是表单的提交,尽管按州执行此操作可能是合乎逻辑的 - 也就是说,域本身不排除半填的表单,只有在提交时所有必填字段都需要的规则待完成才真正生效。

    例如,半填表格有效可能很有意义 - 特别是如果表格需要通过工作流程(例如让主管签字)直到它可以被视为完整

    【讨论】:

    • 非常感谢萨雷特。是的,它是基于上下文的。这与我面临的域对象未处于有效状态的冲突相同,我是否应该允许它在工作流程中进行保存。
    • 我很高兴 - 在这种情况下似乎没问题 - 你确实有两种不同类型的验证 - ValidForSave 和 ValidForSubmission
    • @GeorgeKT 也许问题是您试图用一个域实体对两个不同的概念进行建模?我对 DDD 很陌生,并且也在尝试学习,但是如果将其视为业务问题,我觉得保存进度可能是该领域的一部分。拥有一个允许不完整的 DraftEntity 怎么样。一旦流程完成,DraftEntity 就会变成实体。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2013-12-05
    • 2021-10-31
    • 1970-01-01
    • 2018-08-03
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多